Objectliste angefangen

This commit is contained in:
HuskyTeufel
2021-09-16 20:36:55 +02:00
parent 4123cc7aba
commit 0f11ce7f0f
26 changed files with 1127 additions and 21 deletions

View File

@@ -1,6 +1,7 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.EntityFramework.Services;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
@@ -8,16 +9,34 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.ViewModel
{
public class BuildingsiteListViewModel: BaseViewModel
{
public ObservableCollection<Buildingsite> Buildingsites { get; }
private readonly IActualProject _actualProject;
private readonly IRenavigator _renavigator;
private readonly BuildingsiteDataService _buildingSiteDataService;
private Buildingsite? _selectedBuildingsite;
public Buildingsite? SelectedBuildingsite
{
get => _selectedBuildingsite;
set
{
if(_selectedBuildingsite != value)
{
_selectedBuildingsite = value;
OnPropertyChanged();
}
}
}
public ICommand SelectCommand { get; set; }
public BuildingsiteListViewModel(IDataService<Buildingsite> buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator)
{
@@ -25,6 +44,7 @@ namespace DaSaSo.ViewModel
_renavigator = renavigator;
_buildingSiteDataService = buildingSiteDataService as BuildingsiteDataService;
Buildingsites = new ObservableCollection<Buildingsite>();
SelectCommand = new SelectBuildingsiteCommand(actualProject, this);
LoadBuildingsites();
}

View File

@@ -0,0 +1,27 @@
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 SelectBuildingsiteCommand : AsyncCommandBase
{
private IActualProject _actualProject;
private BuildingsiteListViewModel _buildingsiteListViewModel;
public SelectBuildingsiteCommand(IActualProject actualProject, BuildingsiteListViewModel buildingsiteListViewModel)
{
this._actualProject = actualProject;
this._buildingsiteListViewModel = buildingsiteListViewModel;
}
public override async Task ExecuteAsync(object? parameter)
{
var s = _buildingsiteListViewModel.SelectedBuildingsite;
_actualProject.SetBuildingSite(s);
}
}
}

View File

@@ -12,6 +12,7 @@
<ItemGroup>
<ProjectReference Include="..\DaSaSo.Domain\DaSaSo.Domain.csproj" />
<ProjectReference Include="..\DaSaSo.EntityFramework\DaSaSo.EntityFramework.csproj" />
<ProjectReference Include="..\DaSaSo.InMemoryProvider\DaSaSo.InMemoryProvider.csproj" />
</ItemGroup>
</Project>

View File

@@ -18,19 +18,21 @@ namespace DaSaSo.ViewModel.Factories
private CreateViewModel<ClientEditViewModel> _createClientEditViewModel;
private CreateViewModel<ProjectListViewModel> _createProjektListViewModel;
private CreateViewModel<BuildingsiteListViewModel> _createBuildingsiteListViewModel;
private CreateViewModel<SewerObjectListViewModel> _createSewerObjectListViewModel;
public ViewModelAbstractFactory(
CreateViewModel<HomeViewModel> createHomeViewModel,
CreateViewModel<ClientListViewModel> createClientListViewModel,
CreateViewModel<ClientEditViewModel> createClientEditViewModel,
CreateViewModel<ProjectListViewModel> createProjektListViewModel,
CreateViewModel<BuildingsiteListViewModel> createBuildingsiteListViewModel)
CreateViewModel<BuildingsiteListViewModel> createBuildingsiteListViewModel, CreateViewModel<SewerObjectListViewModel> createSewerObjectListViewModel)
{
_createHomeViewModel = createHomeViewModel;
_createClientListViewModel = createClientListViewModel;
_createClientEditViewModel = createClientEditViewModel;
_createProjektListViewModel = createProjektListViewModel;
_createBuildingsiteListViewModel = createBuildingsiteListViewModel;
_createSewerObjectListViewModel = createSewerObjectListViewModel;
}
public BaseViewModel CreateViewModel(EViewType viewType)
@@ -48,9 +50,9 @@ namespace DaSaSo.ViewModel.Factories
return _createProjektListViewModel();
case EViewType.Buildingsites:
return _createBuildingsiteListViewModel();
/*case EViewType.SewerObjects:
break;
*/
case EViewType.SewerObjects:
return _createSewerObjectListViewModel();
default:
throw new ArgumentException("The Viewtype does not have a ViewModel.", "viewType");
}

View File

@@ -0,0 +1,92 @@
using DaSaSo.Domain.DesignModel;
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.EntityFramework.Services;
using DaSaSo.InMemoryProvider;
using DaSaSo.ViewModel.Interface;
using Microsoft.Toolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.ViewModel
{
public class SewerObjectListViewModel : BaseViewModel
{
private readonly SewerObjectDataService _sewerObjectDataService;
private readonly IActualProject _actualProject;
public ObservableCollection<SewerObjectsToStreet> SewerObjects { get; }
public object Testme { get; set; }
public ICommand Bearbeiten { get; set; }
public SewerObjectListViewModel(IDataService<SewerObject> sewerObjectDataService, IActualProject actualProject)
{
SewerObjects = new ObservableCollection<SewerObjectsToStreet>();
this._sewerObjectDataService = (sewerObjectDataService as SewerObjectDataService);
this._actualProject = actualProject;
LoadSewerObjects();
Bearbeiten = new RelayCommand(function);
}
private void function()
{
SewerObject? SelectedSewer = GetSelectedSewer();
if (SelectedSewer == null) return;
Debugger.Break();
}
private SewerObject? GetSelectedSewer()
{
SewerObject? result = null;
foreach(SewerObjectsToStreet? streetcollection in SewerObjects)
{
foreach(SewerObject? sewer in streetcollection.SewerObjects)
{
if (sewer.IsSelected)
{
result = sewer;
break;
}
}
if (result != null)
break;
}
return result;
}
private async void LoadSewerObjects()
{
IEnumerable<SewerObject>? sewerobjects = await _sewerObjectDataService.GetAllByBuildingsite(_actualProject.AktuellBaustelle);
List<SewerObject> _sewers = sewerobjects.ToList();
// Get all Streetnames
IEnumerable<string>? streetnames = sewerobjects.Select(x => x.StreetName).Distinct();
List<SewerObjectsToStreet> result = new List<SewerObjectsToStreet>();
foreach(string streetname in streetnames)
{
SewerObjectsToStreet res = new SewerObjectsToStreet();
res.Streetname = streetname;
// Get all Objects that called in street
res.SewerObjects = _sewers.FindAll(x => x.StreetName.Equals(streetname));
result.Add(res);
}
InitCollection(SewerObjects, result);
}
private void InitCollection(ObservableCollection<SewerObjectsToStreet> target, List<SewerObjectsToStreet> source)
{
target.Clear();
foreach (var i in source)
target.Add(i);
}
}
}