using SewerStammGen.Shared.Contracts; using SewerStammGen.Shared.Domain; using StammGenerator.Commands; using StammGenerator.Interface; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows.Input; namespace StammGenerator.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 ICommand ExportCommand { 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(actualState, renavigator); ExportCommand = new ProjectExportCommand(actualState); 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); } } } }