using DaSaSo.Domain.Model; using DaSaSo.Domain.Services; using DaSaSo.Domain.Services.BuildingsiteServices; using DaSaSo.ViewModel.Interface; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DaSaSo.ViewModel.Commands { public class EditBuildingsiteCommand : AsyncCommandBase { private IDataService buildingSiteDataService; private IActualProject actualProject; private IRenavigator renavigator; private IBuildingsiteService buildingsiteService; private BuildingsiteListViewModel _buildingsiteListViewModel; public override bool CanExecute(object? parameter) { return _buildingsiteListViewModel.CanSelectBuildingsite; } public EditBuildingsiteCommand(IDataService buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator, IBuildingsiteService buildingsiteService, BuildingsiteListViewModel buildingsiteListViewModel) { this.buildingSiteDataService = buildingSiteDataService; this.actualProject = actualProject; this.renavigator = renavigator; this.buildingsiteService = buildingsiteService; _buildingsiteListViewModel = buildingsiteListViewModel; _buildingsiteListViewModel.PropertyChanged += BuildingsiteListViewModel_PropertyChanged; } private void BuildingsiteListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(_buildingsiteListViewModel.CanSelectBuildingsite)) OnCanExecuteChanged(); } public override async Task ExecuteAsync(object? parameter) { actualProject.SetBuildingSite(_buildingsiteListViewModel.SelectedBuildingsite); renavigator.Renavigate(); } } }