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,30 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.BuildingsiteServices;
using DaSaSo.Wpf.ViewModel.Interface;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class AddBuildingsiteCommand: AsyncCommandBase
{
private IActualProject _actualProject;
private IBuildingsiteService _buildingsiteService;
private readonly IRenavigator _renavigator;
private readonly IDataService<Buildingsite> _dataservice;
public AddBuildingsiteCommand(IDataService<Buildingsite> dataService, IActualProject actualProject, IBuildingsiteService buildingsiteService, IRenavigator renavigator)
{
_actualProject = actualProject;
_buildingsiteService = buildingsiteService;
_dataservice = dataService;
_renavigator = renavigator;
}
public override async Task ExecuteAsync(object? parameter)
{
Buildingsite buildingsite = await _buildingsiteService.CreateBuildingsite(_actualProject.AktuellProjekt);
_actualProject.SetBuildingSite(buildingsite);
_renavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,32 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Wpf.ViewModel.Interface;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class AddClientCommand : AsyncCommandBase
{
private readonly IDataService<Client> dataservice;
private readonly IActualProject actualProject;
private readonly IRenavigator renavigator;
private readonly ClientListViewModel clientListViewModel;
public AddClientCommand(IDataService<Client> dataservice, IActualProject actualProject, IRenavigator renavigator, ClientListViewModel clientListViewModel)
{
this.dataservice = dataservice;
this.actualProject = actualProject;
this.renavigator = renavigator;
this.clientListViewModel = clientListViewModel;
}
public override async Task ExecuteAsync(object? parameter)
{
Client newClient = await dataservice.Create(new Client());
actualProject.SetClient(newClient,false);
//actualProject.SetClient(clientListViewModel.SelectedClient);
renavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,36 @@
using DaSaSo.Domain.Model;
using DaSaSo.Wpf.ViewModel.Interface;
using System.Linq;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
class AddDamageCommand : AsyncCommandBase
{
private readonly IActualProject actualProject;
private readonly IRenavigator addedNavigator;
public AddDamageCommand(IActualProject actualProject, IRenavigator addedNavigator)
{
this.actualProject = actualProject;
this.addedNavigator = addedNavigator;
}
public override async Task ExecuteAsync(object? parameter)
{
SewerDamage newSewerDamage = new SewerDamage();
//newSewerDamage.SewerObject = actualProject.AktuellSewerObject; // Führt zur Exception, dass EF versucht doppelte einträge vorzunehmen
actualProject.AktuellSewerObject.SewerDamages.Add(newSewerDamage);
SewerDamage? lastInsertedDamage = actualProject.AktuellSewerObject.SewerDamages.Last();
lastInsertedDamage.SewerObject = actualProject.AktuellSewerObject;
actualProject.SetSewerDamage(lastInsertedDamage);
//addedNavigator.Renavigate(); // Bug führt zur generellen umnavigation...
}
}
}

View File

@@ -0,0 +1,25 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
internal class AddImpregnationCommand : AsyncCommandBase
{
private IDataService<Impregnation> impregnationService;
private IRenavigator editRenavigator;
public AddImpregnationCommand(IDataService<Impregnation> impregnationService, IRenavigator editRenavigator)
{
this.impregnationService = impregnationService;
this.editRenavigator = editRenavigator;
}
public override Task ExecuteAsync(object? parameter)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,34 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.ProjectServices;
using DaSaSo.Wpf.ViewModel.Interface;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class AddProjectCommand : AsyncCommandBase
{
private readonly IActualProject _actualProject;
private readonly IProjectService _projectService;
private readonly IRenavigator _renavigator;
private readonly IDataService<Project> _genericDataService;
public AddProjectCommand(IDataService<Project> genericDataService, IActualProject actualProject, IProjectService projectService, IRenavigator renavigator)
{
_actualProject = actualProject;
_projectService = projectService;
_renavigator = renavigator;
_genericDataService = genericDataService;
}
public override async Task ExecuteAsync(object? parameter)
{
Project pro = await _projectService.CreateProject();
_actualProject.SetProject(pro);
_renavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,25 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services.SewerObjectService;
using DaSaSo.Wpf.ViewModel.Interface;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class AddSewerObjectCommand : AsyncCommandBase
{
private IActualProject _actualProject;
private ISewerObjectService _sewerObjectService;
public AddSewerObjectCommand(IActualProject actualProject, ISewerObjectService sewerObjectService)
{
_actualProject = actualProject;
_sewerObjectService = sewerObjectService;
}
public override async Task ExecuteAsync(object? parameter)
{
SewerObject sewerobject = await _sewerObjectService.CreateSewerObject(_actualProject.AktuellBaustelle);
_actualProject.SetSewerObject(sewerobject);
}
}
}

View File

@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public abstract class AsyncCommandBase : ICommand
{
bool _isExecuting = false;
public event EventHandler? CanExecuteChanged;
public bool IsExecuting
{
get => _isExecuting;
set
{
_isExecuting = value;
CanExecuteChanged?.Invoke(this, new EventArgs());
}
}
protected void OnCanExecuteChanged()
{
CanExecuteChanged?.Invoke(this, new EventArgs());
}
public virtual bool CanExecute(object? parameter)
{
return !IsExecuting;
}
public async void Execute(object? parameter)
{
IsExecuting = true;
await ExecuteAsync(parameter);
IsExecuting = false;
}
public abstract Task ExecuteAsync(object? parameter);
}
}

View File

@@ -0,0 +1,44 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.BuildingsiteServices;
using DaSaSo.Wpf.ViewModel.Interface;
using System.ComponentModel;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class EditBuildingsiteCommand : AsyncCommandBase
{
private IDataService<Buildingsite> buildingSiteDataService;
private IActualProject actualProject;
private IRenavigator renavigator;
private IBuildingsiteService buildingsiteService;
private BuildingsiteListViewModel _buildingsiteListViewModel;
public override bool CanExecute(object? parameter)
{
return _buildingsiteListViewModel.CanSelectBuildingsite;
}
public EditBuildingsiteCommand(IDataService<Buildingsite> buildingSiteDataService, IActualProject actualProject, IRenavigator renavigator, IBuildingsiteService buildingsiteService, BuildingsiteListViewModel buildingsiteListViewModel)
{
this.buildingSiteDataService = buildingSiteDataService;
this.actualProject = actualProject;
this.renavigator = renavigator;
this.buildingsiteService = buildingsiteService;
_buildingsiteListViewModel = buildingsiteListViewModel;
_buildingsiteListViewModel.PropertyChanged += BuildingsiteListViewModel_PropertyChanged;
}
private void BuildingsiteListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(_buildingsiteListViewModel.CanSelectBuildingsite))
OnCanExecuteChanged();
}
public override async Task ExecuteAsync(object? parameter)
{
actualProject.SetBuildingSite(_buildingsiteListViewModel.SelectedBuildingsite);
renavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,45 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Wpf.ViewModel.Interface;
using System.ComponentModel;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class EditClientCommand : AsyncCommandBase
{
private readonly IDataService<Client> dataservice;
private readonly IActualProject actualProject;
private readonly IRenavigator renavigator;
private readonly ClientListViewModel _clientListViewModel;
public override bool CanExecute(object? parameter)
{
return _clientListViewModel.CanSelectClient;
}
public EditClientCommand(IDataService<Client> dataservice, IActualProject actualProject,IRenavigator renavigator, ClientListViewModel clientListViewModel)
{
this.dataservice = dataservice;
this.actualProject = actualProject;
this.renavigator = renavigator;
this._clientListViewModel = clientListViewModel;
_clientListViewModel.PropertyChanged += _clientListViewModel_PropertyChanged;
}
private void _clientListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if(e.PropertyName == nameof(_clientListViewModel.CanSelectClient))
{
OnCanExecuteChanged();
}
}
public override async Task ExecuteAsync(object? parameter)
{
actualProject.SetClient(_clientListViewModel.SelectedClient);
renavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,44 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Wpf.ViewModel.Interface;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
internal class EditImpregnationCommand : AsyncCommandBase
{
private IDataService<Impregnation> _impregnationService;
private ImpregnierungListViewModel _impregnierungListViewModel;
private IRenavigator _editRenavigator;
private IActualProject _actualProject;
public override bool CanExecute(object? parameter)
{
return _impregnierungListViewModel.SelectedImpregnation != null;
}
public EditImpregnationCommand(
IDataService<Impregnation> impregnationService,
ImpregnierungListViewModel impregnierungListViewModel,
IActualProject actualProject,
IRenavigator editRenavigator)
{
_impregnationService = impregnationService;
_impregnierungListViewModel = impregnierungListViewModel;
_actualProject = actualProject;
_editRenavigator = editRenavigator;
_impregnierungListViewModel.PropertyChanged += _impregnierungListViewModel_PropertyChanged;
}
private void _impregnierungListViewModel_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(_impregnierungListViewModel.CanSelectImpregnation))
OnCanExecuteChanged();
}
public override async Task ExecuteAsync(object? parameter)
{
_actualProject.SetImpregnation(_impregnierungListViewModel.SelectedImpregnation);
_editRenavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,44 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.ProjectServices;
using DaSaSo.Wpf.ViewModel.Interface;
using System.ComponentModel;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
class EditProjectCommand : AsyncCommandBase
{
private IDataService<Project> _dataService;
private IActualProject _actualProject;
private IRenavigator _renavigator;
private readonly IProjectService _projectService;
private ProjectListViewModel _projectListViewModel;
public override bool CanExecute(object? parameter)
{
return _projectListViewModel.SelectedProject != null;
}
public EditProjectCommand(IDataService<Project> dataService, IActualProject actualProject, IRenavigator renavigator, IProjectService projectService, ProjectListViewModel projectListViewModel)
{
this._dataService = dataService;
this._actualProject = actualProject;
this._renavigator = renavigator;
this._projectService = projectService;
this._projectListViewModel = projectListViewModel;
_projectListViewModel.PropertyChanged += _projectListViewModel_PropertyChanged;
}
private void _projectListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(_projectListViewModel.CanSelectProject))
OnCanExecuteChanged();
}
public override async Task ExecuteAsync(object? parameter)
{
_actualProject.SetProject(_projectListViewModel.SelectedProject);
_renavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,28 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
internal class SaveImpregnationCommand : AsyncCommandBase
{
private IDataService<Impregnation> _impregnationService;
private ImpregnierungEditViewModel _impregnationEditViewModel;
public SaveImpregnationCommand(ImpregnierungEditViewModel impregnierungEditViewModel, IDataService<Impregnation> dataService)
{
_impregnationService = dataService;
_impregnationEditViewModel = impregnierungEditViewModel;
}
public override async Task ExecuteAsync(object? parameter)
{
_impregnationEditViewModel.Model = await _impregnationService.Update(_impregnationEditViewModel.Model.Id, _impregnationEditViewModel.Model);
Trace.WriteLine("Daten gespeichert");
}
}
}

View File

@@ -0,0 +1,51 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.SewerObjectService;
using DaSaSo.Domain.Services.SewerPointServices;
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class SaveSewerCommand : AsyncCommandBase
{
private IDataService<SewerObject> _dataService;
private IActualProject _actualProject;
private readonly ISewerObjectService _sewerObjectService;
private readonly IRenavigator _renavigator;
private readonly ISewerMainNavigator _navigator;
public SaveSewerCommand(
IDataService<SewerObject> dataService,
IActualProject actualProject,
ISewerObjectService sewerObjectService,
IRenavigator renavigator,
ISewerMainNavigator navigator)
{
_dataService = dataService;
_actualProject = actualProject;
_sewerObjectService = sewerObjectService;
_renavigator = renavigator;
_navigator = navigator;
}
public override async Task ExecuteAsync(object? parameter)
{
Trace.WriteLine(_actualProject.AktuellSewerObject.IsChanged);
_navigator.CurrentViewModel = null;
_renavigator.Renavigate();
}
}
}

View File

@@ -0,0 +1,51 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Services.SewerPointServices;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
class SaveSewerStammdatenCommand : AsyncCommandBase
{
private readonly SewerStammdatenViewModel _stammdatenViewModel;
private IDataService<SewerObject> _dataService;
private readonly ISewerpointService _sewerPointService;
public SaveSewerStammdatenCommand(SewerStammdatenViewModel stammdatenViewModel, IDataService<SewerObject> dataService, ISewerpointService sewerpointService)
{
_stammdatenViewModel = stammdatenViewModel;
_dataService = dataService;
_sewerPointService = sewerpointService;
}
public override async Task ExecuteAsync(object? parameter)
{
if (_stammdatenViewModel._oberepunkt != null)
{
if ((_stammdatenViewModel.Model.PunktOben == null) || (_stammdatenViewModel._oberepunkt != _stammdatenViewModel.Model.PunktOben.Objektnummer))
{
SewerPoint punktOben = await _sewerPointService.CreateOrFindSewerpoint(_stammdatenViewModel._oberepunkt);
_stammdatenViewModel.Model.PunktOben = punktOben;
}
}
if (_stammdatenViewModel._unterepunkt != null)
{
if ((_stammdatenViewModel.Model.PunktUnten == null) || (_stammdatenViewModel._unterepunkt != _stammdatenViewModel.Model.PunktUnten.Objektnummer))
{
SewerPoint punktUnten = await _sewerPointService.CreateOrFindSewerpoint(_stammdatenViewModel._unterepunkt);
_stammdatenViewModel.Model.PunktUnten = punktUnten;
}
}
_stammdatenViewModel.Model = await _dataService.Update(_stammdatenViewModel.Model.Id, _stammdatenViewModel.Model);
Trace.WriteLine("Daten gespeichert");
}
}
}

View File

@@ -0,0 +1,39 @@
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class SelectBuildingsiteCommand : AsyncCommandBase
{
private IActualProject _actualProject;
private BuildingsiteListViewModel _buildingsiteListViewModel;
public override bool CanExecute(object? parameter)
{
return _buildingsiteListViewModel.CanSelectBuildingsite;
}
public SelectBuildingsiteCommand(IActualProject actualProject, BuildingsiteListViewModel buildingsiteListViewModel)
{
this._actualProject = actualProject;
this._buildingsiteListViewModel = buildingsiteListViewModel;
_buildingsiteListViewModel.PropertyChanged += _buildingsiteListViewModel_PropertyChanged;
}
private void _buildingsiteListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(_buildingsiteListViewModel.CanSelectBuildingsite))
OnCanExecuteChanged();
}
public override async Task ExecuteAsync(object? parameter)
{
var s = _buildingsiteListViewModel.SelectedBuildingsite;
_actualProject.SetBuildingSite(s);
}
}
}

View File

@@ -0,0 +1,53 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class SelectClientCommand : AsyncCommandBase
{
private readonly IActualProject _actualProject;
private readonly ClientListViewModel _clientListViewModel;
private readonly IDataService<Client> _dataservice;
public override bool CanExecute(object? parameter)
{
return _clientListViewModel.CanSelectClient;
}
public SelectClientCommand(
IDataService<Client> dataService,
IActualProject actualProject,
ClientListViewModel clientListViewModel)
{
_actualProject = actualProject;
_clientListViewModel = clientListViewModel;
_clientListViewModel.PropertyChanged += ClientListViewModel_PropertyChanged;
_dataservice = dataService;
}
private void ClientListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if(e.PropertyName == nameof(_clientListViewModel.CanSelectClient))
{
OnCanExecuteChanged();
}
}
public override async Task ExecuteAsync(object? parameter)
{
Client? _selectedClient = _clientListViewModel.SelectedClient;
if (_selectedClient == null) return;
_selectedClient = await _dataservice.Get(_selectedClient.Id);
_actualProject.SetClient(_selectedClient);
}
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
class SelectDamageCommand : AsyncCommandBase
{
private readonly SewerMainListViewModel _sewerMainListViewModel;
public SelectDamageCommand(SewerMainListViewModel sewerMainListViewModel)
{
_sewerMainListViewModel = sewerMainListViewModel;
}
public override Task ExecuteAsync(object? parameter)
{
var d = _sewerMainListViewModel;
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,39 @@
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Wpf.ViewModel.Commands
{
public class SelectProjectCommand : AsyncCommandBase
{
private readonly IActualProject _actualProject;
private readonly ProjectListViewModel _projectListViewModel;
public override bool CanExecute(object? parameter)
{
return _projectListViewModel.SelectedProject != null;
}
public SelectProjectCommand(IActualProject actualProject, ProjectListViewModel projectListViewModel)
{
_actualProject = actualProject;
_projectListViewModel = projectListViewModel;
_projectListViewModel.PropertyChanged += _projectListViewModel_PropertyChanged;
}
private void _projectListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(_projectListViewModel.CanSelectProject))
OnCanExecuteChanged();
}
public override async Task ExecuteAsync(object? parameter)
{
var s = _projectListViewModel.SelectedProject;
_actualProject.SetProject(s);
}
}
}

View File

@@ -0,0 +1,29 @@
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.Commands
{
public class SelectSewerObjectCommand : AsyncCommandBase
{
private readonly IActualProject _actualProject;
private readonly SewerObjectListViewModel _sewerObjectListViewModel;
public SelectSewerObjectCommand(IActualProject actualProject, SewerObjectListViewModel sewerObjectListViewModel)
{
_actualProject = actualProject;
_sewerObjectListViewModel = sewerObjectListViewModel;
}
public override async Task ExecuteAsync(object? parameter)
{
SewerObject? selectedSewer = _sewerObjectListViewModel.GetSelectedSewer();
if (selectedSewer == null) return;
_actualProject.SetSewerObject(selectedSewer);
}
}
}

View File

@@ -0,0 +1,32 @@
using DaSaSo.Domain.Enums;
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.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());
}
}
}
}

View File

@@ -0,0 +1,32 @@
using DaSaSo.Domain.Enums;
using DaSaSo.Wpf.ViewModel.Enums;
using DaSaSo.Wpf.ViewModel.Interface;
using System;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.Wpf.ViewModel.Commands
{
class UpdateCurrentViewModelCommand : AsyncCommandBase
{
private INavigator _navigator;
private readonly IViewModelAbstractFactory _viewModelFactory;
public UpdateCurrentViewModelCommand(INavigator navigator, IViewModelAbstractFactory viewModelFactory)
{
_navigator = navigator;
_viewModelFactory = viewModelFactory;
}
public override async Task ExecuteAsync(object? parameter)
{
if(parameter is EMainWindowViewType)
{
EMainWindowViewType viewType = (EMainWindowViewType)parameter;
_navigator.CurrentViewModel = _viewModelFactory.CreateViewModel(viewType);
}
}
}
}