Haltungen können hinzugefügt werden

vorbereitungen für Haltungmainview angefangen
This commit is contained in:
HuskyTeufel
2021-09-23 13:55:54 +02:00
parent e23f898f14
commit 56feac58bb
20 changed files with 341 additions and 16 deletions

View File

@@ -0,0 +1,81 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.BuildingsiteServices;
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 BuildingsiteEditViewModel : BaseViewModel
{
private readonly IDataService<Buildingsite> _buildingsiteService;
private readonly IActualProject _actualProject;
private readonly IRenavigator _renavigator;
private readonly Buildingsite _model;
public Buildingsite Model
{
get => _model;
}
public string BuildingNumber
{
get => _model.BuildingSiteNumber;
set
{
if(_model.BuildingSiteNumber != value)
{
_model.BuildingSiteNumber = value;
OnPropertyChanged();
}
}
}
public string Country
{
get => _model.Country;
set
{
if(_model.Country != value)
{
_model.Country = value;
OnPropertyChanged();
}
}
}
public string Contactperson
{
get => _model.ContactPerson;
set
{
if (_model.ContactPerson != value)
{
_model.ContactPerson = value;
OnPropertyChanged();
}
}
}
public IRelayCommand SaveBuildingsiteCommand { get; set; }
public BuildingsiteEditViewModel(IDataService<Buildingsite> buildingsiteService, IActualProject actualProject, IRenavigator renavigator)
{
_buildingsiteService = buildingsiteService;
_actualProject = actualProject;
_renavigator = renavigator;
_model = actualProject.AktuellBaustelle;
SaveBuildingsiteCommand = new RelayCommand(SaveBuildingsite);
}
private void SaveBuildingsite()
{
_buildingsiteService.Update(Model.Id, Model);
//_renavigator.Renavigate(new BuildingsiteListViewModel(_buildingsiteService,_actualProject,_renavigator))
}
}
}

View File

@@ -39,6 +39,7 @@ namespace DaSaSo.ViewModel
public ICommand SelectCommand { get; set; }
public ICommand AddCommand { get; set; }
public ICommand EditCommand { get; set; }
public BuildingsiteListViewModel(IDataService<Buildingsite> buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator,IBuildingsiteService buildingsiteService)
{
@@ -46,6 +47,7 @@ namespace DaSaSo.ViewModel
_renavigator = renavigator;
_buildingSiteDataService = buildingSiteDataService as BuildingsiteDataService;
Buildingsites = new ObservableCollection<Buildingsite>();
EditCommand = new EditBuildingsiteCommand(buildingSiteDataService,actualProject,renavigator,buildingsiteService,this);
SelectCommand = new SelectBuildingsiteCommand(actualProject, this);
AddCommand = new AddBuildingsiteCommand(actualProject, buildingsiteService);
LoadBuildingsites();

View File

@@ -0,0 +1,28 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services.SewerObjectService;
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 AddSewerObjectCommand : AsyncCommandBase
{
private IActualProject _actualProject;
private ISewerObjectService _sewerObjectService;
public AddSewerObjectCommand(IActualProject actualProject, ISewerObjectService sewerObjectService)
{
_actualProject = actualProject;
_sewerObjectService = sewerObjectService;
}
public override async Task ExecuteAsync(object? parameter)
{
SewerObject sewerobject = await _sewerObjectService.CreateSewerObject(_actualProject.AktuellBaustelle);
}
}
}

View File

@@ -0,0 +1,36 @@
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.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 EditBuildingsiteCommand(IDataService<Buildingsite> buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator, IBuildingsiteService buildingsiteService, BuildingsiteListViewModel buildingsiteListViewModel)
{
this.buildingSiteDataService = buildingSiteDataService;
this.actualProject = actualProject;
this.renavigator = renavigator;
this.buildingsiteService = buildingsiteService;
this.buildingsiteListViewModel = buildingsiteListViewModel;
}
public override async Task ExecuteAsync(object? parameter)
{
actualProject.SetBuildingSite(buildingsiteListViewModel.SelectedBuildingsite);
renavigator.Renavigate(new BuildingsiteEditViewModel(buildingSiteDataService, actualProject, renavigator));
}
}
}

View File

@@ -0,0 +1,29 @@
using DaSaSo.Domain.Model;
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 SelectSewerObjectCommand : AsyncCommandBase
{
private readonly IActualProject _actualProject;
private readonly SewerObjectListViewModel _sewerObjectListViewModel;
public SelectSewerObjectCommand(IActualProject actualProject, SewerObjectListViewModel sewerObjectListViewModel)
{
_actualProject = actualProject;
_sewerObjectListViewModel = sewerObjectListViewModel;
}
public override async Task ExecuteAsync(object? parameter)
{
SewerObject? selectedSewer = _sewerObjectListViewModel.GetSelectedSewer();
if (selectedSewer == null) return;
_actualProject.SetSewerObject(selectedSewer);
}
}
}

View File

@@ -11,13 +11,17 @@ namespace DaSaSo.ViewModel.Factories
private CreateViewModel<ProjectListViewModel> _createProjektListViewModel;
private CreateViewModel<BuildingsiteListViewModel> _createBuildingsiteListViewModel;
private CreateViewModel<SewerObjectListViewModel> _createSewerObjectListViewModel;
private CreateViewModel<SewerMainMenuListViewModel> _createSewerMainMenuListViewModel;
public MainWindowViewModelFactory(
CreateViewModel<HomeViewModel> createHomeViewModel,
CreateViewModel<ClientListViewModel> createClientListViewModel,
CreateViewModel<ClientEditViewModel> createClientEditViewModel,
CreateViewModel<ProjectListViewModel> createProjektListViewModel,
CreateViewModel<BuildingsiteListViewModel> createBuildingsiteListViewModel, CreateViewModel<SewerObjectListViewModel> createSewerObjectListViewModel)
CreateViewModel<BuildingsiteListViewModel> createBuildingsiteListViewModel,
CreateViewModel<SewerObjectListViewModel> createSewerObjectListViewModel,
CreateViewModel<SewerMainMenuListViewModel> createSewerMainMenuListViewModel
)
{
_createHomeViewModel = createHomeViewModel;
_createClientListViewModel = createClientListViewModel;
@@ -25,6 +29,7 @@ namespace DaSaSo.ViewModel.Factories
_createProjektListViewModel = createProjektListViewModel;
_createBuildingsiteListViewModel = createBuildingsiteListViewModel;
_createSewerObjectListViewModel = createSewerObjectListViewModel;
_createSewerMainMenuListViewModel = createSewerMainMenuListViewModel;
}
public BaseViewModel CreateViewModel(EMainWindowViewType viewType)
@@ -44,6 +49,8 @@ namespace DaSaSo.ViewModel.Factories
return _createBuildingsiteListViewModel();
case EMainWindowViewType.SewerObjects:
return _createSewerObjectListViewModel();
case EMainWindowViewType.SewerMainMenu:
return _createSewerMainMenuListViewModel();
default:
throw new ArgumentException("The Viewtype does not have a ViewModel.", "viewType");

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel
{
public class SewerMainMenuListViewModel : BaseViewModel
{
}
}

View File

@@ -1,8 +1,10 @@
using DaSaSo.Domain.DesignModel;
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.SewerObjectService;
using DaSaSo.EntityFramework.Services;
using DaSaSo.InMemoryProvider;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Interface;
using Microsoft.Toolkit.Mvvm.Input;
using System;
@@ -20,26 +22,23 @@ namespace DaSaSo.ViewModel
{
private readonly SewerObjectDataService _sewerObjectDataService;
private readonly IActualProject _actualProject;
private readonly ISewerObjectService _sewerObjectService;
public ObservableCollection<SewerObjectsToStreet> SewerObjects { get; }
public object Testme { get; set; }
public ICommand Bearbeiten { get; set; }
public ICommand EditCommand { get; set; }
public ICommand AddCommand { get; set; }
public SewerObjectListViewModel(IDataService<SewerObject> sewerObjectDataService, IActualProject actualProject)
public SewerObjectListViewModel(IDataService<SewerObject> sewerObjectDataService, IActualProject actualProject, ISewerObjectService sewerObjectService)
{
SewerObjects = new ObservableCollection<SewerObjectsToStreet>();
this._sewerObjectDataService = (sewerObjectDataService as SewerObjectDataService);
_sewerObjectService = sewerObjectService;
this._actualProject = actualProject;
LoadSewerObjects();
Bearbeiten = new RelayCommand(function);
}
EditCommand = new SelectSewerObjectCommand(actualProject, this);
AddCommand = new AddSewerObjectCommand(actualProject, sewerObjectService);
private void function()
{
SewerObject? SelectedSewer = GetSelectedSewer();
if (SelectedSewer == null) return;
Debugger.Break();
}
public SewerObject? GetSelectedSewer()
@@ -63,6 +62,7 @@ namespace DaSaSo.ViewModel
private async void LoadSewerObjects()
{
//BUG: Streetname can be null, programm Terminate
IEnumerable<SewerObject>? sewerobjects = await _sewerObjectDataService.GetAllByBuildingsite(_actualProject.AktuellBaustelle);
List<SewerObject> _sewers = sewerobjects.ToList();

View File

@@ -34,6 +34,10 @@ namespace DaSaSo.ViewModel.State.ActualState
{
BuildingSiteChanged?.Invoke(this, new EventArgs());
}
protected void OnSewerObjectChanged()
{
SewerObjectChanged?.Invoke(this, new EventArgs());
}
#endregion
public void SetClient(Client client)
{
@@ -57,9 +61,10 @@ namespace DaSaSo.ViewModel.State.ActualState
public void SetSewerObject(SewerObject sewerObject)
{
AktuellSewerObject = sewerObject;
OnSewerObjectChanged();
}
public void ResetProject()
{
SetProject(null);

View File

@@ -83,11 +83,17 @@ namespace DaSaSo.ViewModel
_actualProject.ClientChanged += _actualProject_ClientChanged;
_actualProject.ProjectChanged += _actualProject_ProjectChanged;
_actualProject.BuildingSiteChanged += _actualProject_BuildingSiteChanged;
_actualProject.SewerObjectChanged += _actualProject_SewerObjectChanged;
}
private void _actualProject_SewerObjectChanged(object? sender, EventArgs e)
{
throw new NotImplementedException();
}
private void _navigator_StateChanged()
{
OnPropertyChanged(nameof(CurrentViewModel));
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.SewerMainMenu);
}
private void _actualProject_BuildingSiteChanged(object? sender, EventArgs e)