Interktion im WPF erweitert
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
28
DaSaSo.ViewModel/Commands/AddBuildingsiteCommand.cs
Normal file
28
DaSaSo.ViewModel/Commands/AddBuildingsiteCommand.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
36
DaSaSo.ViewModel/Commands/AddClientCommand.cs
Normal file
36
DaSaSo.ViewModel/Commands/AddClientCommand.cs
Normal 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
30
DaSaSo.ViewModel/Commands/AddProjectCommand.cs
Normal file
30
DaSaSo.ViewModel/Commands/AddProjectCommand.cs
Normal 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);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
37
DaSaSo.ViewModel/Commands/EditProjectCommand.cs
Normal file
37
DaSaSo.ViewModel/Commands/EditProjectCommand.cs
Normal 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
56
DaSaSo.ViewModel/ProjectEditViewModel.cs
Normal file
56
DaSaSo.ViewModel/ProjectEditViewModel.cs
Normal 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user