Objectliste angefangen
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
27
DaSaSo.ViewModel/Commands/SelectBuildingsiteCommand.cs
Normal file
27
DaSaSo.ViewModel/Commands/SelectBuildingsiteCommand.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
92
DaSaSo.ViewModel/SewerObjectListViewModel.cs
Normal file
92
DaSaSo.ViewModel/SewerObjectListViewModel.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user