using DaSaSo.Domain.Model; using DaSaSo.Domain.Services; using DaSaSo.Wpf.ViewModel.Interface; using System.ComponentModel; using System.Threading.Tasks; namespace DaSaSo.Wpf.ViewModel.Commands { public class EditClientCommand : AsyncCommandBase { private readonly IDataService dataservice; private readonly IActualProject actualProject; private readonly IRenavigator renavigator; private readonly ClientListViewModel _clientListViewModel; public override bool CanExecute(object? parameter) { return _clientListViewModel.CanSelectClient; } public EditClientCommand(IDataService dataservice, IActualProject actualProject,IRenavigator renavigator, ClientListViewModel clientListViewModel) { this.dataservice = dataservice; this.actualProject = actualProject; this.renavigator = renavigator; this._clientListViewModel = clientListViewModel; _clientListViewModel.PropertyChanged += _clientListViewModel_PropertyChanged; } private void _clientListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e) { if(e.PropertyName == nameof(_clientListViewModel.CanSelectClient)) { OnCanExecuteChanged(); } } public override async Task ExecuteAsync(object? parameter) { actualProject.SetClient(_clientListViewModel.SelectedClient); renavigator.Renavigate(); } } }