viewmodel ins wpf gepackt, build failed

This commit is contained in:
HuskyTeufel
2022-03-30 14:59:12 +02:00
parent f34f4517ca
commit 1bf0c3b615
87 changed files with 157 additions and 213 deletions

View File

@@ -0,0 +1,102 @@
using DaSaSo.Domain.Model;
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.State.ActualState
{
public class ActualProject : IActualProject
{
public Client? AktuellClient { get; private set; }
public Buildingsite? AktuellBaustelle { get; private set; }
public Project? AktuellProjekt { get; private set; }
public SewerObject? AktuellSewerObject { get; private set; }
public SewerDamage? AktuellSewerDamage { get; private set; }
public Impregnation? AktuellImpregnation { get; private set; }
#region events
public event EventHandler? ClientChanged;
public event EventHandler? ProjectChanged;
public event EventHandler? BuildingSiteChanged;
public event EventHandler? SewerObjectChanged;
public event EventHandler? SewerDamageChanged;
protected void OnClientChanged()
{
ClientChanged?.Invoke(this, new EventArgs());
}
protected void OnProjectChanged()
{
ProjectChanged?.Invoke(this, new EventArgs());
}
protected void OnBuildingSiteChanged()
{
BuildingSiteChanged?.Invoke(this, new EventArgs());
}
protected void OnSewerObjectChanged()
{
SewerObjectChanged?.Invoke(this, new EventArgs());
}
protected void OnSewerDamageChanged()
{
SewerDamageChanged?.Invoke(this, new EventArgs());
}
#endregion
public void SetClient(Client client, bool notification = true)
{
//ResetProject();
//ResetBuildingSite();
AktuellClient = client;
if(notification)
OnClientChanged();
}
public void SetProject(Project project, bool notification = true)
{
AktuellProjekt = project;
if(notification)
OnProjectChanged();
}
public void SetBuildingSite(Buildingsite buildingsite)
{
AktuellBaustelle = buildingsite;
OnBuildingSiteChanged();
}
public void SetSewerObject(SewerObject sewerObject,bool notification = true)
{
AktuellSewerObject = sewerObject;
if(notification)
OnSewerObjectChanged();
}
public void SetImpregnation(Impregnation impregnation, bool notification = true)
{
AktuellImpregnation = impregnation;
if (notification)
return; // TODO notification wird aktuell nicht benötigt
}
public void ResetProject()
{
SetProject(null);
ResetBuildingSite();
}
public void ResetBuildingSite()
{
SetBuildingSite(null);
}
public void SetSewerDamage(SewerDamage sewerDamage, bool notification = true)
{
AktuellSewerDamage = sewerDamage;
if (notification)
OnSewerDamageChanged();
}
}
}

View File

@@ -0,0 +1,26 @@
using DaSaSo.Wpf.ViewModel.Commands;
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Input;
namespace DaSaSo.Wpf.ViewModel.State.Navigation
{
public class MainWindowNavigator : ObservableObject, IMainWindowNavigator
{
private BaseViewModel _currentViewModel;
public BaseViewModel CurrentViewModel
{
get => _currentViewModel;
set
{
_currentViewModel?.Dispose();
_currentViewModel = value;
StateChanged?.Invoke();
}
}
public event Action StateChanged;
}
}

View File

@@ -0,0 +1,25 @@
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.State.Navigation
{
public class SewerMainNavigator : ISewerMainNavigator
{
private BaseViewModel _currentViewModel;
public BaseViewModel CurrentViewModel
{
get => _currentViewModel;
set
{
_currentViewModel?.Dispose();
_currentViewModel = value;
StateChanged?.Invoke();
}
}
public event Action StateChanged;
}
}

View File

@@ -0,0 +1,26 @@
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.State.Navigation
{
public class ViewModelDelegateRenavigator<TViewModel> : IRenavigator where TViewModel: BaseViewModel
{
private readonly IMainWindowNavigator _navigator;
private readonly CreateViewModel<TViewModel> _createViewModel;
public ViewModelDelegateRenavigator(IMainWindowNavigator navigator, CreateViewModel<TViewModel> createViewModel)
{
_navigator = navigator;
_createViewModel = createViewModel;
}
public void Renavigate()
{
_navigator.CurrentViewModel = _createViewModel();
}
}
}