Umbau
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using KanSan.Base.Interfaces;
|
||||
using KanSan.Base.Models;
|
||||
using KanSan.ViewModel.Commands;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Win32;
|
||||
using Syncfusion.XlsIO;
|
||||
using System;
|
||||
@@ -11,6 +12,7 @@ using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Windows.Input;
|
||||
|
||||
@@ -32,10 +34,11 @@ namespace KanSan.ViewModel
|
||||
private Sewer _selectedObjekt;
|
||||
|
||||
public static Baustelle Baustelle;
|
||||
//public static Sewer SelectedObjekt;
|
||||
public static List<LeistungsverzeichnisPosition> LVPositionen = null;
|
||||
|
||||
public static IServiceProvider ServiceProvider { get; private set; }
|
||||
|
||||
|
||||
public ICommand ListClientsCommand { get; set; }
|
||||
public ICommand ListProjectsCommand { get; set; }
|
||||
public ICommand ListBaustellenCommand { get; set; }
|
||||
@@ -48,13 +51,13 @@ namespace KanSan.ViewModel
|
||||
{
|
||||
get
|
||||
{
|
||||
Trace.WriteLine(actualViewModel);
|
||||
return actualViewModel;
|
||||
//return actualViewModel;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (actualViewModel == value) return;
|
||||
Trace.WriteLine("Setze viewModel auf " + value);
|
||||
Trace.WriteLine("AktualView Geändert zu " + value);
|
||||
actualViewModel = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
@@ -145,6 +148,7 @@ namespace KanSan.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Sewer SelectedObjekt
|
||||
{
|
||||
get
|
||||
@@ -161,6 +165,7 @@ namespace KanSan.ViewModel
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveInRegistry(string key, string value)
|
||||
{
|
||||
Registry.SetValue(REGISTRYKEY, key, value);
|
||||
@@ -223,10 +228,11 @@ namespace KanSan.ViewModel
|
||||
}
|
||||
public MainWindowViewModel()
|
||||
{
|
||||
|
||||
ServiceProvider = ConfigureServiceProvider();
|
||||
LadeRegistry();
|
||||
LoadBaustellenLeistungsverzeichnis();
|
||||
|
||||
|
||||
ListClients();
|
||||
|
||||
|
||||
@@ -235,6 +241,22 @@ namespace KanSan.ViewModel
|
||||
ListBaustellenCommand = new RelayCommand(paramter => ListBaustellen());
|
||||
ListObjectsCommand = new RelayCommand(parameter => ListObjekte());
|
||||
|
||||
Mediator.Subscribe("GoTo1Screen", OnGo1Screen);
|
||||
|
||||
}
|
||||
|
||||
private void OnGo1Screen(object obj)
|
||||
{
|
||||
ListClients();
|
||||
}
|
||||
|
||||
private IServiceProvider ConfigureServiceProvider()
|
||||
{
|
||||
IServiceCollection service = new ServiceCollection();
|
||||
|
||||
service.AddSingleton<MainWindowViewModel>();
|
||||
|
||||
return service.BuildServiceProvider();
|
||||
}
|
||||
|
||||
private void ListClients()
|
||||
|
||||
45
KanSan.ViewModel/Mediator.cs
Normal file
45
KanSan.ViewModel/Mediator.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace KanSan.ViewModel
|
||||
{
|
||||
class Mediator
|
||||
{
|
||||
private static IDictionary<string, List<Action<object>>> pl_dict = new Dictionary<string, List<Action<object>>>();
|
||||
public static void Subscribe(string token, Action<object> callback)
|
||||
{
|
||||
if(!pl_dict.ContainsKey(token))
|
||||
{
|
||||
var list = new List<Action<object>>();
|
||||
list.Add(callback);
|
||||
pl_dict.Add(token, list);
|
||||
}
|
||||
else
|
||||
{
|
||||
bool found = false;
|
||||
foreach(var item in pl_dict[token])
|
||||
{
|
||||
if (item.Method.ToString() == callback.Method.ToString())
|
||||
found = true;
|
||||
}
|
||||
if (!found)
|
||||
pl_dict[token].Add(callback);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Unsubscribe(string token, Action<object> callback)
|
||||
{
|
||||
if (pl_dict.ContainsKey(token))
|
||||
pl_dict[token].Remove(callback);
|
||||
}
|
||||
public static void Notify(string token, object args = null)
|
||||
{
|
||||
if(pl_dict.ContainsKey(token))
|
||||
{
|
||||
foreach (var callback in pl_dict[token])
|
||||
callback(args);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ using KanSan.Base.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace KanSan.ViewModel
|
||||
@@ -170,6 +171,8 @@ namespace KanSan.ViewModel
|
||||
|
||||
public void Speichern()
|
||||
{
|
||||
objekt.PunktOben = getPoint(punktOben, true);
|
||||
objekt.PunktUnten = getPoint(punktUnten, true);
|
||||
objekt.StrasseName = strassename;
|
||||
objekt.DN = durchmesser;
|
||||
objekt.Haltungslaenge = haltungslaenge;
|
||||
@@ -182,6 +185,29 @@ namespace KanSan.ViewModel
|
||||
unitOfWork.KanaeleRepository.Update(objekt);
|
||||
unitOfWork.Commit();
|
||||
}
|
||||
|
||||
|
||||
private SewerPoint getPoint(string objektnummer, bool createIfNotFound = false)
|
||||
{
|
||||
List<SewerPoint> sewerPoints = unitOfWork.ObjekteRepository.Get(x => x.Objektnummer.Equals(objektnummer)).ToList();
|
||||
if (sewerPoints.Count < 1)
|
||||
{
|
||||
if (createIfNotFound == false)
|
||||
return null;
|
||||
else
|
||||
{
|
||||
Guid guidNr = Guid.NewGuid();
|
||||
unitOfWork.ObjekteRepository.Update(new SewerPoint()
|
||||
{
|
||||
Objektnummer = objektnummer,
|
||||
GuidNr = guidNr
|
||||
});
|
||||
unitOfWork.Commit();
|
||||
|
||||
return unitOfWork.ObjekteRepository.Get(x => x.GuidNr.Equals(guidNr)).ToList().First();
|
||||
}
|
||||
}
|
||||
return sewerPoints.First();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using KanSan.Base.Interfaces;
|
||||
using KanSan.Base.Interfaces.UI;
|
||||
using KanSan.Base.Models;
|
||||
using KanSan.ViewModel.Commands;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
@@ -19,7 +20,17 @@ namespace KanSan.ViewModel
|
||||
}
|
||||
public class ObjekteListViewModel : BaseViewModel
|
||||
{
|
||||
public ICommand ObjektSelected { get; set; }
|
||||
private ICommand _objektSelected;
|
||||
public ICommand ObjektSelected {
|
||||
get
|
||||
{
|
||||
return _objektSelected ?? (_objektSelected = new RelayCommand(x =>
|
||||
{
|
||||
Mediator.Notify("GoTo1Screen", "");
|
||||
}));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
|
||||
|
||||
@@ -42,20 +53,24 @@ namespace KanSan.ViewModel
|
||||
}).ToList();
|
||||
kanalObjekte = x;
|
||||
|
||||
ObjektSelected = new RelayCommand(SelectObjekt);
|
||||
//ObjektSelected = new RelayCommand(SelectObjekt);
|
||||
|
||||
//kanalObjekte = unitOfWork.KanaeleRepository.Get(x => x.Baustelle.Equals(selectedBaustelle)).ToList();
|
||||
}
|
||||
|
||||
private void SelectObjekt(object obj)
|
||||
{
|
||||
|
||||
//Debugger.Break();
|
||||
if (!(obj is Sewer)) return;
|
||||
Sewer sewer = (Sewer)obj;
|
||||
if (sewer == null) return;
|
||||
|
||||
SewerMainWindowViewModel t = new SewerMainWindowViewModel(sewer);
|
||||
|
||||
//MainWindowViewModel.SelectedObjekt = sewer;
|
||||
/*SewerMainWindowViewModel t = new SewerMainWindowViewModel(sewer);
|
||||
Debugger.Break();
|
||||
//throw new NotImplementedException();
|
||||
*/
|
||||
}
|
||||
|
||||
public Sewer NeueObjektHinzufügen()
|
||||
|
||||
@@ -12,7 +12,7 @@ using System.Text;
|
||||
|
||||
namespace KanSan.ViewModel
|
||||
{
|
||||
public class SchaedenListViewModel : ISchaedenListViewModel
|
||||
public class SchaedenListViewModel : BaseViewModel, ISchaedenListViewModel
|
||||
{
|
||||
private Sewer actualSelectedSewer;
|
||||
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
using KanSan.Base.Models;
|
||||
using KanSan.ViewModel.Commands;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace KanSan.ViewModel
|
||||
{
|
||||
@@ -12,7 +16,21 @@ namespace KanSan.ViewModel
|
||||
private Sewer model;
|
||||
private SchaedenViewModel schadenViewModel;
|
||||
private Schaeden schaden;
|
||||
|
||||
private BaseViewModel aktualView;
|
||||
|
||||
public BaseViewModel AktualView
|
||||
{
|
||||
get
|
||||
{
|
||||
return aktualView;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (aktualView == value) return;
|
||||
aktualView = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public Sewer Objekt
|
||||
{
|
||||
@@ -56,12 +74,30 @@ namespace KanSan.ViewModel
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ICommand StammdatenSelect { get; private set; }
|
||||
public ICommand SchädenübersichtSelect { get; private set; }
|
||||
|
||||
public SewerMainWindowViewModel(Sewer model)
|
||||
{
|
||||
if (model == null) throw new ArgumentNullException();
|
||||
this.model = model;
|
||||
|
||||
StammdatenSelect = new RelayCommand(parameter => SelectStammdaten());
|
||||
SchädenübersichtSelect = new RelayCommand(parameter => SelectSchädenübersicht());
|
||||
|
||||
var x = MainWindowViewModel.ServiceProvider.GetService<MainWindowViewModel>();
|
||||
x.ActualViewModel = new ObjekteEditViewModel(model);
|
||||
|
||||
}
|
||||
|
||||
private void SelectSchädenübersicht()
|
||||
{
|
||||
AktualView = new SchaedenListViewModel(model);
|
||||
}
|
||||
|
||||
private void SelectStammdaten()
|
||||
{
|
||||
AktualView = new ObjekteEditViewModel(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user