49 lines
1.8 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|