52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
using DaSaSo.Domain.Model;
|
|
using DaSaSo.Domain.Services;
|
|
using DaSaSo.ViewModel.Interface;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Input;
|
|
|
|
namespace DaSaSo.ViewModel.Commands
|
|
{
|
|
public class EditClientCommand : AsyncCommandBase
|
|
{
|
|
private readonly IDataService<Client> 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<Client> 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(new ClientEditViewModel(dataservice,actualProject,renavigator));
|
|
}
|
|
}
|
|
}
|