Renavigator erweitert

This commit is contained in:
HuskyTeufel
2021-09-14 22:13:47 +02:00
parent f6dd834f34
commit b213cefa99
3 changed files with 26 additions and 7 deletions

View File

@@ -16,24 +16,26 @@ namespace DaSaSo.ViewModel
private Client _model; private Client _model;
private IDataService<Client> _dataService; private IDataService<Client> _dataService;
private readonly IActualProject _actualProject; private readonly IActualProject _actualProject;
private readonly IRenavigator renavigator;
public Client Model { get => _model; set => _model = value; } public Client Model { get => _model; set => _model = value; }
public IRelayCommand SaveClientCommand { get; set; } public IRelayCommand SaveClientCommand { get; set; }
public ClientEditViewModel(IDataService<Client> dataService, IActualProject actualProject) public ClientEditViewModel(IDataService<Client> dataService, IActualProject actualProject, IRenavigator renavigator)
{ {
this._dataService = dataService; this._dataService = dataService;
SaveClientCommand = new RelayCommand(SaveClient); SaveClientCommand = new RelayCommand(SaveClient);
_actualProject = actualProject; _actualProject = actualProject;
this.renavigator = renavigator;
this._model = _actualProject.AktuellClient; this._model = _actualProject.AktuellClient;
} }
private void SaveClient() private void SaveClient()
{ {
_dataService.Update(Model.Id, Model); _dataService.Update(Model.Id, Model);
Mediator.Notify(Enums.EMediator.SHOWCLIENT); renavigator.Renavigate();
} }
} }
} }

View File

@@ -13,15 +13,17 @@ namespace DaSaSo.ViewModel.Factories
public class ClientEditViewModelFactory : IViewModelFactory<ClientEditViewModel> public class ClientEditViewModelFactory : IViewModelFactory<ClientEditViewModel>
{ {
private readonly IActualProject _actualProject; private readonly IActualProject _actualProject;
private readonly IRenavigator renavigator;
public ClientEditViewModelFactory(IActualProject actualProject) public ClientEditViewModelFactory(IActualProject actualProject, IRenavigator renavigator)
{ {
_actualProject = actualProject; _actualProject = actualProject;
this.renavigator = renavigator;
} }
public ClientEditViewModel CreateViewModel() public ClientEditViewModel CreateViewModel()
{ {
return new ClientEditViewModel(new GenericDataService<Client>(new DaSaSoDbContextFactory()), _actualProject); return new ClientEditViewModel(new GenericDataService<Client>(new DaSaSoDbContextFactory()), _actualProject,renavigator);
} }
} }
} }

View File

@@ -37,9 +37,24 @@ namespace DaSaSo.Wpf
services.AddSingleton<IViewModelAbstractFactory, ViewModelAbstractFactory>(); services.AddSingleton<IViewModelAbstractFactory, ViewModelAbstractFactory>();
services.AddSingleton<IViewModelFactory<HomeViewModel>, HomeViewModelFactory>(); services.AddSingleton<IViewModelFactory<HomeViewModel>, HomeViewModelFactory>();
services.AddSingleton<IRenavigator, ViewModelFactoryRenavigator<ClientEditViewModel>>(); //services.AddSingleton<IRenavigator, ViewModelFactoryRenavigator<ClientEditViewModel>>();
services.AddSingleton<IViewModelFactory<ClientListViewModel>, ClientListViewModelFactory>(); services.AddSingleton<IViewModelFactory<ClientListViewModel>, ClientListViewModelFactory>((services) =>
services.AddSingleton<IViewModelFactory<ClientEditViewModel>, ClientEditViewModelFactory>(); new ClientListViewModelFactory(
services.GetRequiredService<IActualProject>(),
new ViewModelFactoryRenavigator<ClientEditViewModel>(
services.GetRequiredService<INavigator>(),
services.GetRequiredService<IViewModelFactory<ClientEditViewModel>>()
)
));
services.AddSingleton<IViewModelFactory<ClientEditViewModel>, ClientEditViewModelFactory>((services) =>
new ClientEditViewModelFactory(
services.GetRequiredService<IActualProject>(),
new ViewModelFactoryRenavigator<HomeViewModel>(
services.GetRequiredService<INavigator>(),
services.GetRequiredService<IViewModelFactory<HomeViewModel>>()
)
));
//services.AddSingleton<INavigator, Navigator>(); //services.AddSingleton<INavigator, Navigator>();
services.AddScoped<IActualProject, ActualProject>(); services.AddScoped<IActualProject, ActualProject>();