using DaSaSo.Domain.Model; using DaSaSo.Domain.Services; using DaSaSo.Domain.Services.BuildingsiteServices; using DaSaSo.EntityFramework.Services; using DaSaSo.ViewModel.Commands; using DaSaSo.ViewModel.Interface; 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 BuildingsiteListViewModel: BaseViewModel { public ObservableCollection Buildingsites { get; } private readonly IActualProject _actualProject; private readonly IRenavigator _renavigator; private readonly BuildingsiteDataService _buildingSiteDataService; private Buildingsite? _selectedBuildingsite; public Buildingsite? SelectedBuildingsite { get => _selectedBuildingsite; set { if(_selectedBuildingsite != value) { _selectedBuildingsite = value; OnPropertyChanged(); } } } public ICommand SelectCommand { get; set; } public ICommand AddCommand { get; set; } public BuildingsiteListViewModel(IDataService buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator,IBuildingsiteService buildingsiteService) { _actualProject = actualProject; _renavigator = renavigator; _buildingSiteDataService = buildingSiteDataService as BuildingsiteDataService; Buildingsites = new ObservableCollection(); SelectCommand = new SelectBuildingsiteCommand(actualProject, this); AddCommand = new AddBuildingsiteCommand(actualProject, buildingsiteService); LoadBuildingsites(); } private async void LoadBuildingsites() { var buildingsites = await _buildingSiteDataService.GetAllByProjekt(_actualProject.AktuellProjekt); InitCollection(Buildingsites, buildingsites); } private void InitCollection(ObservableCollection target, IEnumerable source) { target.Clear(); foreach (var i in source) target.Add(i); } } }