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

49 lines
1.9 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();
}
}
}