using SewerStammGen.Shared.Contracts; using SewerStammGen.Shared.Domain; using SewerStammGen.WPF.Commands; using SewerStammGen.WPF.Interface.Navigator; using SewerStammGen.WPF.ViewModel.State; using Shared.Contracts; 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 SewerStammGen.WPF.ViewModel { public class ManholeListViewModel : BaseViewModel { private readonly ISchachtDataService _schachtDataService; private readonly ObservableCollection _schaechte; private readonly IActualState _actualState; private readonly IRenavigator renavigateToImport; public ObservableCollection Schaechte { get => _schaechte; } public Schacht? SelectedSchacht { get; set; } public ICommand AddSchachtCommand { get; set; } public ICommand EditSchachtCommand { get; set; } public ICommand DeleteSchachtCommand { get; set; } public ICommand ImportSchachtCommand { get; set; } public ManholeListViewModel(ISchachtDataService schachtDataService, IRenavigator renavigator ,IActualState actualState, IRenavigator navigatetoImport) { _schachtDataService = schachtDataService; _actualState = actualState; _schaechte = new ObservableCollection(); renavigateToImport = navigatetoImport; AddSchachtCommand = new SchachtAddCommand(actualState,renavigator); EditSchachtCommand = new SchachtEditCommand(actualState, renavigator,this); DeleteSchachtCommand = new SchachtDeleteCommand(schachtDataService, actualState, renavigator, this); ImportSchachtCommand = new RelayCommand((x) => { navigatetoImport.Renavigate(); }); LoadSchaechte(); } private async void LoadSchaechte() { var schaechte = await _schachtDataService.GetAllByProjekt(_actualState.ProjektID); InitCollection(_schaechte, schaechte); } private void InitCollection(ObservableCollection dest, IEnumerable source) { dest.Clear(); foreach(var i in source) { dest.Add(i); } } } }