49 lines
2.0 KiB
C#
49 lines
2.0 KiB
C#
using DaSaSo.Domain.Model;
|
|
using DaSaSo.Domain.Services;
|
|
using DaSaSo.Domain.Services.BuildingsiteServices;
|
|
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
|
|
{
|
|
public class EditBuildingsiteCommand : AsyncCommandBase
|
|
{
|
|
private IDataService<Buildingsite> buildingSiteDataService;
|
|
private IActualProject actualProject;
|
|
private IRenavigator renavigator;
|
|
private IBuildingsiteService buildingsiteService;
|
|
private BuildingsiteListViewModel _buildingsiteListViewModel;
|
|
public override bool CanExecute(object? parameter)
|
|
{
|
|
return _buildingsiteListViewModel.CanSelectBuildingsite;
|
|
}
|
|
|
|
public EditBuildingsiteCommand(IDataService<Buildingsite> buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator, IBuildingsiteService buildingsiteService, BuildingsiteListViewModel buildingsiteListViewModel)
|
|
{
|
|
this.buildingSiteDataService = buildingSiteDataService;
|
|
this.actualProject = actualProject;
|
|
this.renavigator = renavigator;
|
|
this.buildingsiteService = buildingsiteService;
|
|
_buildingsiteListViewModel = buildingsiteListViewModel;
|
|
_buildingsiteListViewModel.PropertyChanged += BuildingsiteListViewModel_PropertyChanged;
|
|
}
|
|
|
|
private void BuildingsiteListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
|
|
{
|
|
if (e.PropertyName == nameof(_buildingsiteListViewModel.CanSelectBuildingsite))
|
|
OnCanExecuteChanged();
|
|
}
|
|
|
|
public override async Task ExecuteAsync(object? parameter)
|
|
{
|
|
actualProject.SetBuildingSite(_buildingsiteListViewModel.SelectedBuildingsite);
|
|
renavigator.Renavigate(new BuildingsiteEditViewModel(buildingSiteDataService, actualProject, renavigator));
|
|
}
|
|
}
|
|
}
|