Sewermainview angefangen
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using DaSaSo.Domain.Enums;
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel.Commands
|
||||
{
|
||||
class UpdateCurrentSewerViewModelCommand : AsyncCommandBase
|
||||
{
|
||||
private INavigator _navigator;
|
||||
private readonly IViewModelSewerMainFactory _viewModelFactory;
|
||||
|
||||
public UpdateCurrentSewerViewModelCommand(INavigator navigator, IViewModelSewerMainFactory viewModelFactory)
|
||||
{
|
||||
_navigator = navigator;
|
||||
_viewModelFactory = viewModelFactory;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
if (parameter is ESewerWindowViewType)
|
||||
{
|
||||
ESewerWindowViewType viewType = (ESewerWindowViewType)parameter;
|
||||
_navigator.CurrentViewModel = _viewModelFactory.CreateViewModel(viewType);
|
||||
//throw new NotImplementedException(parameter.GetType().ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
using DaSaSo.Domain.Enums;
|
||||
using DaSaSo.ViewModel.Enums;
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace DaSaSo.ViewModel.Commands
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.0-rc1" />
|
||||
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using DaSaSo.Domain.Enums;
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using System;
|
||||
|
||||
namespace DaSaSo.ViewModel.Factories
|
||||
{
|
||||
@@ -11,7 +12,7 @@ namespace DaSaSo.ViewModel.Factories
|
||||
private CreateViewModel<ProjectListViewModel> _createProjektListViewModel;
|
||||
private CreateViewModel<BuildingsiteListViewModel> _createBuildingsiteListViewModel;
|
||||
private CreateViewModel<SewerObjectListViewModel> _createSewerObjectListViewModel;
|
||||
private CreateViewModel<SewerMainMenuListViewModel> _createSewerMainMenuListViewModel;
|
||||
private CreateViewModel<SewerMainListViewModel> _createSewerMainMenuListViewModel;
|
||||
|
||||
public MainWindowViewModelFactory(
|
||||
CreateViewModel<HomeViewModel> createHomeViewModel,
|
||||
@@ -20,7 +21,7 @@ namespace DaSaSo.ViewModel.Factories
|
||||
CreateViewModel<ProjectListViewModel> createProjektListViewModel,
|
||||
CreateViewModel<BuildingsiteListViewModel> createBuildingsiteListViewModel,
|
||||
CreateViewModel<SewerObjectListViewModel> createSewerObjectListViewModel,
|
||||
CreateViewModel<SewerMainMenuListViewModel> createSewerMainMenuListViewModel
|
||||
CreateViewModel<SewerMainListViewModel> createSewerMainMenuListViewModel
|
||||
)
|
||||
{
|
||||
_createHomeViewModel = createHomeViewModel;
|
||||
|
||||
37
DaSaSo.ViewModel/Factories/SewerWindowViewModelFactory.cs
Normal file
37
DaSaSo.ViewModel/Factories/SewerWindowViewModelFactory.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using DaSaSo.Domain.Enums;
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel.Factories
|
||||
{
|
||||
public class SewerWindowViewModelFactory : IViewModelSewerMainFactory
|
||||
{
|
||||
private CreateViewModel<SewerStammdatenViewModel> _createSewerStammdatenViewModel;
|
||||
private CreateViewModel<SewerDamageListViewModel> _createSewerDamageListViewModel;
|
||||
|
||||
public SewerWindowViewModelFactory(
|
||||
CreateViewModel<SewerStammdatenViewModel> createSewerStammdatenViewModel,
|
||||
CreateViewModel<SewerDamageListViewModel> createSewerDamageListViewModel
|
||||
|
||||
)
|
||||
{
|
||||
_createSewerStammdatenViewModel = createSewerStammdatenViewModel;
|
||||
_createSewerDamageListViewModel = createSewerDamageListViewModel;
|
||||
}
|
||||
|
||||
public BaseViewModel CreateViewModel(ESewerWindowViewType viewType)
|
||||
{
|
||||
switch (viewType)
|
||||
{
|
||||
case ESewerWindowViewType.SewerStammdaten: return _createSewerStammdatenViewModel();
|
||||
case ESewerWindowViewType.SewerDamageList: return _createSewerDamageListViewModel();
|
||||
default:
|
||||
throw new ArgumentException("The Viewtype does not have a ViewModel", "viewType");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
12
DaSaSo.ViewModel/Interface/IMainWindowNavigator.cs
Normal file
12
DaSaSo.ViewModel/Interface/IMainWindowNavigator.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel.Interface
|
||||
{
|
||||
public interface IMainWindowNavigator : INavigator
|
||||
{
|
||||
}
|
||||
}
|
||||
12
DaSaSo.ViewModel/Interface/ISewerMainNavigator.cs
Normal file
12
DaSaSo.ViewModel/Interface/ISewerMainNavigator.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel.Interface
|
||||
{
|
||||
public interface ISewerMainNavigator : INavigator
|
||||
{
|
||||
}
|
||||
}
|
||||
14
DaSaSo.ViewModel/Interface/IViewModelSewerMainFactory.cs
Normal file
14
DaSaSo.ViewModel/Interface/IViewModelSewerMainFactory.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using DaSaSo.Domain.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel.Interface
|
||||
{
|
||||
public interface IViewModelSewerMainFactory
|
||||
{
|
||||
BaseViewModel CreateViewModel(ESewerWindowViewType viewType);
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel
|
||||
{
|
||||
public class SewerMainMenuListViewModel : BaseViewModel
|
||||
public class SewerDamageListViewModel : BaseViewModel
|
||||
{
|
||||
}
|
||||
}
|
||||
31
DaSaSo.ViewModel/SewerMainListViewModel.cs
Normal file
31
DaSaSo.ViewModel/SewerMainListViewModel.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using DaSaSo.ViewModel.Commands;
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using Microsoft.Toolkit.Mvvm.Input;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace DaSaSo.ViewModel
|
||||
{
|
||||
public class SewerMainListViewModel : BaseViewModel
|
||||
{
|
||||
private ISewerMainNavigator _navigator { get; set; }
|
||||
private IActualProject _actualProject { get; set; }
|
||||
public ICommand UpdateCurrentSewerViewModelCommand { get; }
|
||||
public BaseViewModel CurrentSewerViewModel => _navigator.CurrentViewModel;
|
||||
|
||||
public SewerMainListViewModel(ISewerMainNavigator navigator,IActualProject actualProject, IViewModelSewerMainFactory viewModelFactory)
|
||||
{
|
||||
_navigator = navigator;
|
||||
_actualProject = actualProject;
|
||||
UpdateCurrentSewerViewModelCommand = new UpdateCurrentSewerViewModelCommand(_navigator, viewModelFactory);
|
||||
_navigator.StateChanged += () =>
|
||||
{
|
||||
OnPropertyChanged(nameof(CurrentSewerViewModel));
|
||||
}; //_navigator_StateChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
65
DaSaSo.ViewModel/SewerStammdatenViewModel.cs
Normal file
65
DaSaSo.ViewModel/SewerStammdatenViewModel.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using DaSaSo.Domain.Model;
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel
|
||||
{
|
||||
public class SewerStammdatenViewModel : BaseViewModel
|
||||
{
|
||||
private readonly IActualProject _actualProject;
|
||||
private SewerObject _model;
|
||||
|
||||
public string Haltungsname
|
||||
{
|
||||
get => _model.ObjektName;
|
||||
set
|
||||
{
|
||||
if(_model.ObjektName != value)
|
||||
{
|
||||
_model.ObjektName = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
public string Oberepunkt { get; set; }
|
||||
public string Unterepunkt { get; set; }
|
||||
public string Durchmesser { get; set; }
|
||||
public string Material { get; set; }
|
||||
public decimal Leitungslenght {
|
||||
get => _model.SewerLength;
|
||||
set
|
||||
{
|
||||
if(_model.SewerLength != value)
|
||||
{
|
||||
_model.SewerLength = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
public string Strasse
|
||||
{
|
||||
get => _model.StreetName;
|
||||
set
|
||||
{
|
||||
if (_model.StreetName != value)
|
||||
{
|
||||
_model.StreetName = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
public string Ort
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
public SewerStammdatenViewModel(IActualProject actualProject)
|
||||
{
|
||||
_actualProject = actualProject;
|
||||
_model = actualProject.AktuellSewerObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,13 @@
|
||||
using DaSaSo.ViewModel.Commands;
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace DaSaSo.ViewModel.State.Navigation
|
||||
{
|
||||
public class Navigator : ObservableObject, INavigator
|
||||
public class MainWindowNavigator : ObservableObject, IMainWindowNavigator
|
||||
{
|
||||
|
||||
private BaseViewModel _currentViewModel;
|
||||
25
DaSaSo.ViewModel/State/Navigation/SewerMainNavigator.cs
Normal file
25
DaSaSo.ViewModel/State/Navigation/SewerMainNavigator.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using DaSaSo.ViewModel.Interface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.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;
|
||||
}
|
||||
}
|
||||
@@ -9,10 +9,10 @@ namespace DaSaSo.ViewModel.State.Navigation
|
||||
{
|
||||
public class ViewModelDelegateRenavigator : IRenavigator
|
||||
{
|
||||
private readonly INavigator _navigator;
|
||||
private readonly IMainWindowNavigator _navigator;
|
||||
|
||||
|
||||
public ViewModelDelegateRenavigator(INavigator navigator)
|
||||
public ViewModelDelegateRenavigator(IMainWindowNavigator navigator)
|
||||
{
|
||||
_navigator = navigator;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace DaSaSo.ViewModel
|
||||
public bool CanSelectBuildingSite { get => _actualProject.AktuellProjekt != null; }
|
||||
public bool CanSelectSewerObjects { get => _actualProject.AktuellBaustelle != null; }
|
||||
|
||||
public INavigator _navigator { get; set; }
|
||||
public IMainWindowNavigator _navigator { get; set; }
|
||||
public ICommand UpdateCurrentViewModelCommand { get; }
|
||||
public BaseViewModel CurrentViewModel => _navigator.CurrentViewModel;
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace DaSaSo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public MainWindowViewModel(INavigator navigator,IViewModelAbstractFactory viewModelFactory, IActualProject actualProject)
|
||||
public MainWindowViewModel(IMainWindowNavigator navigator,IViewModelAbstractFactory viewModelFactory, IActualProject actualProject)
|
||||
{
|
||||
this._navigator = navigator;
|
||||
this.viewModelFactory = viewModelFactory;
|
||||
@@ -88,12 +88,12 @@ namespace DaSaSo.ViewModel
|
||||
|
||||
private void _actualProject_SewerObjectChanged(object? sender, EventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.SewerMainMenu);
|
||||
}
|
||||
|
||||
private void _navigator_StateChanged()
|
||||
{
|
||||
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.SewerMainMenu);
|
||||
OnPropertyChanged(nameof(CurrentViewModel));
|
||||
}
|
||||
|
||||
private void _actualProject_BuildingSiteChanged(object? sender, EventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user