using DaSaSo.Domain.Model; using DaSaSo.Domain.Services; using DaSaSo.Domain.Services.ProjectServices; 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 { class EditProjectCommand : AsyncCommandBase { private IDataService _dataService; private IActualProject _actualProject; private IRenavigator _renavigator; private readonly IProjectService _projectService; private ProjectListViewModel _projectListViewModel; public override bool CanExecute(object? parameter) { return _projectListViewModel.SelectedProject != null; } public EditProjectCommand(IDataService dataService, IActualProject actualProject, IRenavigator renavigator, IProjectService projectService, ProjectListViewModel projectListViewModel) { this._dataService = dataService; this._actualProject = actualProject; this._renavigator = renavigator; this._projectService = projectService; this._projectListViewModel = projectListViewModel; _projectListViewModel.PropertyChanged += _projectListViewModel_PropertyChanged; } private void _projectListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(_projectListViewModel.CanSelectProject)) OnCanExecuteChanged(); } public override async Task ExecuteAsync(object? parameter) { _actualProject.SetProject(_projectListViewModel.SelectedProject); _renavigator.Renavigate(); } } }