88 lines
3.0 KiB
C#
88 lines
3.0 KiB
C#
using DaSaSo.Domain.Model;
|
|
using DaSaSo.Domain.Services;
|
|
using DaSaSo.ViewModel.Commands;
|
|
using DaSaSo.ViewModel.Interface;
|
|
using Microsoft.Toolkit.Mvvm.Input;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Input;
|
|
|
|
namespace DaSaSo.ViewModel
|
|
{
|
|
public class ImpregnierungListViewModel : BaseViewModel
|
|
{
|
|
public ObservableCollection<Impregnation> Impregnations { get; }
|
|
private readonly IDataService<Impregnation> _impregnationService;
|
|
private Impregnation? _selectedImpregnation = null;
|
|
public Impregnation? SelectedImpregnation
|
|
{
|
|
get => _selectedImpregnation;
|
|
set
|
|
{
|
|
if(_selectedImpregnation != value)
|
|
{
|
|
_selectedImpregnation = value;
|
|
OnPropertyChanged();
|
|
OnPropertyChanged(nameof(CanSelectImpregnation));
|
|
}
|
|
}
|
|
}
|
|
public bool CanSelectImpregnation => SelectedImpregnation != null;
|
|
public ICommand EditImpregnationCommand { get; set; }
|
|
public ICommand AddImpregnationCommand { get; set; }
|
|
bool _isLoading;
|
|
|
|
public bool IsLoading {
|
|
get => _isLoading;
|
|
set
|
|
{
|
|
if(_isLoading != value)
|
|
{
|
|
_isLoading = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
public ImpregnierungListViewModel(IDataService<Impregnation> impregnationService,IActualProject actualProject, IRenavigator editRenavigator)
|
|
{
|
|
IsLoading = true;
|
|
Impregnations = new ObservableCollection<Impregnation>();
|
|
_impregnationService = impregnationService;
|
|
AddImpregnationCommand = new RelayCommand(() =>
|
|
{
|
|
Impregnation newImpregnation = new Impregnation()
|
|
{
|
|
Number = "Neu bitte Editieren!"
|
|
};
|
|
SelectedImpregnation = newImpregnation;
|
|
Impregnations.Add(newImpregnation);
|
|
OnPropertyChanged("Impregnations");
|
|
});
|
|
|
|
//AddImpregnationCommand = //new AddImpregnationCommand(_impregnationService, editRenavigator);
|
|
EditImpregnationCommand = new EditImpregnationCommand(_impregnationService, this,actualProject, editRenavigator);
|
|
LoadImpregnations();
|
|
|
|
}
|
|
|
|
private async void LoadImpregnations()
|
|
{
|
|
var impregList = await _impregnationService.GetAll();
|
|
InitCollection(Impregnations, impregList);
|
|
IsLoading = false;
|
|
}
|
|
|
|
private void InitCollection(ObservableCollection<Impregnation> target, IEnumerable<Impregnation> source)
|
|
{
|
|
target.Clear();
|
|
foreach (var i in source)
|
|
target.Add(i);
|
|
}
|
|
}
|
|
}
|