Verzeichnisse umgeräumt

This commit is contained in:
2023-04-13 09:24:40 +02:00
parent 1d649d14cb
commit 047e036442
99 changed files with 8 additions and 1930 deletions

View File

@@ -0,0 +1,61 @@
using SewerStammGen.Shared.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SewerStammGen.WPF.ViewModel.State
{
internal class ActualState : IActualState
{
// TODO: set auf private set setzen
public int ProjektID { get; set; }
public int SchachtID { get; private set; }
public int HaltungID { get; private set; }
public void SetProjekt(Projekt projekt, bool notification = true)
{
ProjektID = projekt.Id;
if(notification)
{
OnProjektChanged();
}
}
public void SetSchacht(Schacht schacht, bool notification = true)
{
SchachtID = schacht.Id;
if(notification)
{
OnSchachtChanged();
}
}
public void SetHaltung(Kanal haltung, bool notification = true)
{
HaltungID = haltung.Id;
if(notification)
{
OnHaltungChanged();
}
}
public event EventHandler? ProjektChanged;
public event EventHandler? SchachtChanged;
public event EventHandler? HaltungChanged;
private void OnProjektChanged()
{
ProjektChanged?.Invoke(this, new EventArgs());
}
private void OnSchachtChanged()
{
SchachtChanged?.Invoke(this, new EventArgs());
}
private void OnHaltungChanged()
{
HaltungChanged?.Invoke(this, new EventArgs());
}
}
}

View File

@@ -0,0 +1,22 @@
using SewerStammGen.Shared.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SewerStammGen.WPF.ViewModel.State
{
public interface IActualState
{
event EventHandler? ProjektChanged;
// TODO: ProjektID set entfernen!
int ProjektID { get; set; }
int SchachtID { get; }
int HaltungID { get; }
void SetProjekt(Projekt projekt, bool notification = true);
void SetSchacht(Schacht schacht, bool notification = true);
void SetHaltung(Kanal haltung, bool notification = true);
}
}

View File

@@ -0,0 +1,25 @@
using SewerStammGen.WPF.Interface.Navigator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SewerStammGen.WPF.ViewModel.State.Navigation
{
internal 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 SewerStammGen.WPF.Interface.Navigator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SewerStammGen.WPF.ViewModel.State.Navigation
{
internal 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();
}
}
}