Interktion im WPF erweitert

This commit is contained in:
HuskyTeufel
2021-09-22 16:26:56 +02:00
parent efa52c117c
commit e23f898f14
48 changed files with 1946 additions and 88 deletions

View File

@@ -1,5 +1,6 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.BuildingsiteServices;
using DaSaSo.EntityFramework.Services;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Interface;
@@ -37,15 +38,16 @@ namespace DaSaSo.ViewModel
}
public ICommand SelectCommand { get; set; }
public ICommand AddCommand { get; set; }
public BuildingsiteListViewModel(IDataService<Buildingsite> buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator)
public BuildingsiteListViewModel(IDataService<Buildingsite> buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator,IBuildingsiteService buildingsiteService)
{
_actualProject = actualProject;
_renavigator = renavigator;
_buildingSiteDataService = buildingSiteDataService as BuildingsiteDataService;
Buildingsites = new ObservableCollection<Buildingsite>();
SelectCommand = new SelectBuildingsiteCommand(actualProject, this);
AddCommand = new AddBuildingsiteCommand(actualProject, buildingsiteService);
LoadBuildingsites();
}

View File

@@ -26,7 +26,7 @@ namespace DaSaSo.ViewModel
public ICommand SelectCommand { get; set; }
public ICommand EditCommand { get; set; }
public IRelayCommand AddNewClientCommand { get; set; }
public ICommand AddNewClientCommand { get; set; }
public Client SelectedClient
{
@@ -64,48 +64,10 @@ namespace DaSaSo.ViewModel
LoadClient();
SelectCommand = new SelectClientCommand(actualProject, this); //= new RelayCommand(SelectClient, () => SelectedClient != null);
EditCommand = new EditClientCommand(_dataService,actualProject,renavigator,this);
//EditClientCommand = new RelayCommand(EditClient, () => SelectedClient != null);
//AddNewClientCommand = new RelayCommand(AddNewClient);
AddNewClientCommand = new AddClientCommand(_dataService, actualProject, renavigator, this);
}
private void edit()
{
//_navigator.UpdateViewModelCommand.Execute(EViewType.ClientEdit);
}
private async Task<Client> insertNewClient()
{
Client newClient = new Client()
{
Firstname = "",
LastName = "",
Country = "",
Postcode = ""
};
await _dataService.Create(newClient);
return newClient;
}
private async void AddNewClient()
{
var d = insertNewClient();
await d;
Mediator.Notify(Enums.EMediator.EDITCLIENT, d);
}
private void EditClient()
{
Mediator.Notify(Enums.EMediator.EDITCLIENT, SelectedClient);
}
private void SelectClient()
{
Mediator.Notify(Enums.EMediator.SELECTEDCLIENT, SelectedClient);
}
public async void LoadClient()
{

View File

@@ -0,0 +1,28 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services.BuildingsiteServices;
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel.Commands
{
public class AddBuildingsiteCommand: AsyncCommandBase
{
private IActualProject actualProject;
private IBuildingsiteService buildingsiteService;
public AddBuildingsiteCommand(IActualProject actualProject, IBuildingsiteService buildingsiteService)
{
this.actualProject = actualProject;
this.buildingsiteService = buildingsiteService;
}
public override async Task ExecuteAsync(object? parameter)
{
Buildingsite buildingsite = await buildingsiteService.CreateBuildingsite(actualProject.AktuellProjekt);
}
}
}

View File

@@ -0,0 +1,36 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel.Commands
{
public class AddClientCommand : AsyncCommandBase
{
private readonly IDataService<Client> dataservice;
private readonly IActualProject actualProject;
private readonly IRenavigator renavigator;
private readonly ClientListViewModel clientListViewModel;
public AddClientCommand(IDataService<Client> dataservice, IActualProject actualProject, IRenavigator renavigator, ClientListViewModel clientListViewModel)
{
this.dataservice = dataservice;
this.actualProject = actualProject;
this.renavigator = renavigator;
this.clientListViewModel = clientListViewModel;
}
public override async Task ExecuteAsync(object? parameter)
{
Client newClient = await dataservice.Create(new Client());
actualProject.SetClient(newClient);
//actualProject.SetClient(clientListViewModel.SelectedClient);
renavigator.Renavigate(new ClientEditViewModel(dataservice, actualProject, renavigator));
}
}
}

View File

@@ -0,0 +1,30 @@
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.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel.Commands
{
public class AddProjectCommand : AsyncCommandBase
{
private readonly IActualProject actualProject;
private readonly IProjectService _projectService;
public AddProjectCommand(IActualProject actualProject, IProjectService projectService)
{
this.actualProject = actualProject;
_projectService = projectService;
}
public override async Task ExecuteAsync(object? parameter)
{
Project pro = await _projectService.CreateProject(actualProject.AktuellClient);
}
}
}

View File

@@ -0,0 +1,37 @@
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.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 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;
}
public override async Task ExecuteAsync(object? parameter)
{
_actualProject.SetProject(_projectListViewModel.SelectedProject);
_renavigator.Renavigate(new ProjectEditViewModel(_dataService, _actualProject, _renavigator,_projectService));
}
}
}

View File

@@ -19,7 +19,7 @@ namespace DaSaSo.ViewModel.Interface
SewerObject AktuellSewerObject { get; }
void SetClient(Client client);
void SetProject(Project project);
void SetProject(Project project, bool notification = true);
void SetBuildingSite(Buildingsite buildingsite);
void SetSewerObject(SewerObject sewerObject);
void ResetProject();

View File

@@ -0,0 +1,56 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.ProjectServices;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Interface;
using Microsoft.Toolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.ViewModel
{
public class ProjectEditViewModel : BaseViewModel
{
private Project _model;
private readonly IDataService<Project> _dataservice;
private readonly IActualProject _actualProject;
private readonly IRenavigator _renavigator;
private readonly IProjectService _projectService;
public IRelayCommand SaveProjectCommand { get; set; }
public string ProjektName
{
get => _model.Name;
set
{
if (_model.Name != value)
{
_model.Name = value;
OnPropertyChanged();
}
}
}
public ProjectEditViewModel(IDataService<Project> dataservice, IActualProject actualProject,IRenavigator renavigator, IProjectService projectService)
{
_dataservice = dataservice;
_actualProject = actualProject;
_renavigator = renavigator;
_projectService = projectService;
_model = actualProject.AktuellProjekt;
SaveProjectCommand = new RelayCommand(SaveProject);
//SaveProjectCommand = new EditProjectCommand(_dataservice, _actualProject, _renavigator, this);
}
private void SaveProject()
{
_dataservice.Update(_model.Id, _model);
_renavigator.Renavigate(new ProjectListViewModel(_dataservice, _actualProject, _renavigator, _projectService));
}
}
}

View File

@@ -1,5 +1,6 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.ProjectServices;
using DaSaSo.EntityFramework.Services;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Interface;
@@ -37,7 +38,9 @@ namespace DaSaSo.ViewModel
}
public ICommand SelectCommand { get; set; }
public ProjectListViewModel(IDataService<Project> genericDataService, IActualProject actualProject, IRenavigator renavigator)
public ICommand AddCommand { get; set; }
public ICommand EditCommand { get; set; }
public ProjectListViewModel(IDataService<Project> genericDataService, IActualProject actualProject, IRenavigator renavigator, IProjectService projectService)
{
Projekte = new ObservableCollection<Project>();
if (genericDataService == null) throw new ArgumentNullException("genericDataService");
@@ -46,6 +49,8 @@ namespace DaSaSo.ViewModel
this.actualProject = actualProject;
this.renavigator = renavigator;
SelectCommand = new SelectProjectCommand(actualProject, this);
AddCommand = new AddProjectCommand(actualProject, projectService);
EditCommand = new EditProjectCommand(genericDataService, actualProject, renavigator,projectService, this);
LoadProjecte();
}

View File

@@ -41,10 +41,11 @@ namespace DaSaSo.ViewModel.State.ActualState
OnClientChanged();
}
public void SetProject(Project project)
public void SetProject(Project project, bool notification = true)
{
AktuellProjekt = project;
OnProjectChanged();
if(notification)
OnProjectChanged();
}
public void SetBuildingSite(Buildingsite buildingsite)