viewmodel ins wpf gepackt, build failed
This commit is contained in:
53
DaSaSo.Wpf/ViewModel/Commands/SelectClientCommand.cs
Normal file
53
DaSaSo.Wpf/ViewModel/Commands/SelectClientCommand.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using DaSaSo.Domain.Model;
|
||||
using DaSaSo.Domain.Services;
|
||||
using DaSaSo.Wpf.ViewModel.Interface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace DaSaSo.Wpf.ViewModel.Commands
|
||||
{
|
||||
public class SelectClientCommand : AsyncCommandBase
|
||||
{
|
||||
|
||||
private readonly IActualProject _actualProject;
|
||||
private readonly ClientListViewModel _clientListViewModel;
|
||||
private readonly IDataService<Client> _dataservice;
|
||||
|
||||
public override bool CanExecute(object? parameter)
|
||||
{
|
||||
return _clientListViewModel.CanSelectClient;
|
||||
}
|
||||
public SelectClientCommand(
|
||||
IDataService<Client> dataService,
|
||||
IActualProject actualProject,
|
||||
ClientListViewModel clientListViewModel)
|
||||
{
|
||||
_actualProject = actualProject;
|
||||
_clientListViewModel = clientListViewModel;
|
||||
_clientListViewModel.PropertyChanged += ClientListViewModel_PropertyChanged;
|
||||
_dataservice = dataService;
|
||||
}
|
||||
|
||||
private void ClientListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if(e.PropertyName == nameof(_clientListViewModel.CanSelectClient))
|
||||
{
|
||||
OnCanExecuteChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
Client? _selectedClient = _clientListViewModel.SelectedClient;
|
||||
if (_selectedClient == null) return;
|
||||
_selectedClient = await _dataservice.Get(_selectedClient.Id);
|
||||
_actualProject.SetClient(_selectedClient);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user