93 lines
3.1 KiB
C#
93 lines
3.1 KiB
C#
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();
|
|
}
|
|
|
|
public 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);
|
|
}
|
|
}
|
|
}
|