using SewerStammGen.Shared.Contracts; using SewerStammGen.Shared.Domain; using SewerStammGen.WPF.Commands; using SewerStammGen.WPF.Interface.Navigator; using SewerStammGen.WPF.ViewModel.State; 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 HaltungListViewModel : BaseViewModel { private readonly ObservableCollection _haltungen; private readonly IActualState _actualState; private readonly IHaltungDataService _haltungDataService; public Kanal? SelectedHaltung { get; set; } public ObservableCollection Haltungen { get => _haltungen; } public ICommand EditCommand { get; set; } public ICommand AddCommand { get; set; } public HaltungListViewModel(IHaltungDataService haltungDataService, IActualState actualState, IRenavigator renavigator ) { _haltungen = new ObservableCollection(); _haltungDataService = haltungDataService; _actualState = actualState; EditCommand = new HaltungEditCommand(actualState, renavigator, this); AddCommand = new HaltungAddCommand(); LoadHaltungen(); } private async void LoadHaltungen() { var haltungen = await _haltungDataService.GetAllByProjekt(_actualState.ProjektID); InitCollection(_haltungen, haltungen); } private void InitCollection(ObservableCollection dest, IEnumerable source) { dest.Clear(); foreach (var sourceItem in source) { dest.Add(sourceItem); } } } }