Files
DaSaSo/DaSaSo.ViewModel/Commands/EditProjectCommand.cs
2021-09-29 18:36:56 +02:00

49 lines
1.8 KiB
C#

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<Project> _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<Project> 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();
}
}
}