using SewerStammGen.Shared.Contracts; using SewerStammGen.WPF.Commands; using SewerStammGen.WPF.Interface.Navigator; using SewerStammGen.WPF.ViewModel.State; using Shared.Contracts; using Shared.Domain; 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 ISchachtDataService _schachtDataService; private readonly ObservableCollection _schaechte; private readonly IActualState _actualState; private readonly ISchachtService _schachtService; 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 ManholeListViewModel(ISchachtDataService schachtDataService, IDataService projektService,IRenavigator renavigator ,IActualState actualState, ISchachtService schachtService) { _schachtDataService = schachtDataService; _actualState = actualState; _schaechte = new ObservableCollection(); _schachtService = schachtService; AddSchachtCommand = new SchachtAddCommand(projektService, actualState,renavigator,schachtService); EditSchachtCommand = new SchachtEditCommand(schachtDataService, actualState, renavigator,this); DeleteSchachtCommand = new SchachtDeleteCommand(schachtDataService, actualState, renavigator, this); LoadSchaechte(); } private async void LoadSchaechte() { var schaechte = await _schachtDataService.GetAll(_actualState.ProjektID); InitCollection(_schaechte, schaechte); } private void InitCollection(ObservableCollection dest, IEnumerable source) { dest.Clear(); foreach(var i in source) { dest.Add(i); } } } }