Compare commits
1 Commits
v0.01
...
renavigato
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
debecff686 |
@@ -75,7 +75,7 @@ namespace DaSaSo.ViewModel
|
||||
private void SaveBuildingsite()
|
||||
{
|
||||
_buildingsiteService.Update(Model.Id, Model);
|
||||
_renavigator.Renavigate(new BuildingsiteListViewModel(_buildingsiteService, _actualProject, _renavigator, null));
|
||||
_renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace DaSaSo.ViewModel
|
||||
private void SaveClient()
|
||||
{
|
||||
_dataService.Update(Model.Id, Model);
|
||||
renavigator.Renavigate(new ClientListViewModel(_dataService,_actualProject,renavigator));
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,18 +59,22 @@ namespace DaSaSo.ViewModel
|
||||
|
||||
public bool CanSelectClient => _selectedClient != null;
|
||||
|
||||
public ClientListViewModel(IDataService<Client> dataService, IActualProject actualProject, IRenavigator renavigator)
|
||||
public ClientListViewModel(IDataService<Client> dataService, IActualProject actualProject, IRenavigator editRenavigator)
|
||||
{
|
||||
Clients = new ObservableCollection<Client>();
|
||||
_dataService = dataService;
|
||||
this.renavigator = renavigator;
|
||||
LoadClient();
|
||||
SelectCommand = new SelectClientCommand(actualProject, this); //= new RelayCommand(SelectClient, () => SelectedClient != null);
|
||||
EditCommand = new EditClientCommand(_dataService,actualProject,renavigator,this);
|
||||
AddNewClientCommand = new AddClientCommand(_dataService, actualProject, renavigator, this);
|
||||
EditCommand = new EditClientCommand(_dataService,actualProject, editRenavigator, this);
|
||||
AddNewClientCommand = new AddClientCommand(_dataService, actualProject, editRenavigator, this);
|
||||
|
||||
}
|
||||
|
||||
~ClientListViewModel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public async void LoadClient()
|
||||
{
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace DaSaSo.ViewModel.Commands
|
||||
{
|
||||
Buildingsite buildingsite = await _buildingsiteService.CreateBuildingsite(_actualProject.AktuellProjekt);
|
||||
_actualProject.SetBuildingSite(buildingsite);
|
||||
_renavigator.Renavigate(new BuildingsiteEditViewModel(_dataservice, _actualProject, _renavigator));
|
||||
_renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace DaSaSo.ViewModel.Commands
|
||||
Client newClient = await dataservice.Create(new Client());
|
||||
actualProject.SetClient(newClient,false);
|
||||
//actualProject.SetClient(clientListViewModel.SelectedClient);
|
||||
renavigator.Renavigate(new ClientEditViewModel(dataservice, actualProject, renavigator));
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace DaSaSo.ViewModel.Commands
|
||||
{
|
||||
Project pro = await _projectService.CreateProject(_actualProject.AktuellClient);
|
||||
_actualProject.SetProject(pro);
|
||||
_renavigator.Renavigate(new ProjectEditViewModel(_genericDataService, _actualProject, _renavigator, _projectService));
|
||||
_renavigator.Renavigate();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace DaSaSo.ViewModel.Commands
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
actualProject.SetBuildingSite(_buildingsiteListViewModel.SelectedBuildingsite);
|
||||
renavigator.Renavigate(new BuildingsiteEditViewModel(buildingSiteDataService, actualProject, renavigator));
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace DaSaSo.ViewModel.Commands
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
actualProject.SetClient(_clientListViewModel.SelectedClient);
|
||||
renavigator.Renavigate(new ClientEditViewModel(dataservice,actualProject,renavigator));
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace DaSaSo.ViewModel.Commands
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
_actualProject.SetProject(_projectListViewModel.SelectedProject);
|
||||
_renavigator.Renavigate(new ProjectEditViewModel(_dataService, _actualProject, _renavigator,_projectService));
|
||||
_renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace DaSaSo.ViewModel.Commands
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
_navigator.CurrentViewModel = null;
|
||||
_renavigator.Renavigate(new SewerObjectListViewModel(_dataService, _actualProject, _sewerObjectService));
|
||||
_renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,6 @@ namespace DaSaSo.ViewModel.Interface
|
||||
{
|
||||
public interface IRenavigator
|
||||
{
|
||||
void Renavigate(BaseViewModel target);
|
||||
void Renavigate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace DaSaSo.ViewModel
|
||||
private void SaveProject()
|
||||
{
|
||||
_dataservice.Update(_model.Id, _model);
|
||||
_renavigator.Renavigate(new ProjectListViewModel(_dataservice, _actualProject, _renavigator, _projectService));
|
||||
_renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,5 +65,11 @@ namespace DaSaSo.ViewModel
|
||||
_actualProject.SetSewerObject(sewer,false);
|
||||
IsLoading = false;
|
||||
}
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
_navigator.StateChanged -= () => OnPropertyChanged(nameof(CurrentSewerViewModel));
|
||||
base.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,19 +7,20 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace DaSaSo.ViewModel.State.Navigation
|
||||
{
|
||||
public class ViewModelDelegateRenavigator : IRenavigator
|
||||
public class ViewModelDelegateRenavigator<TViewModel> : IRenavigator where TViewModel: BaseViewModel
|
||||
{
|
||||
private readonly IMainWindowNavigator _navigator;
|
||||
private readonly CreateViewModel<TViewModel> _createViewModel;
|
||||
|
||||
|
||||
public ViewModelDelegateRenavigator(IMainWindowNavigator navigator)
|
||||
public ViewModelDelegateRenavigator(IMainWindowNavigator navigator, CreateViewModel<TViewModel> createViewModel)
|
||||
{
|
||||
_navigator = navigator;
|
||||
_createViewModel = createViewModel;
|
||||
}
|
||||
|
||||
public void Renavigate(BaseViewModel target)
|
||||
public void Renavigate()
|
||||
{
|
||||
_navigator.CurrentViewModel = target;
|
||||
_navigator.CurrentViewModel = _createViewModel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
{
|
||||
services.AddSingleton<IDataService<Client>, ClientDataService>();
|
||||
services.AddSingleton<IDataService<Project>, ProjectDataService>();
|
||||
services.AddSingleton<IDataService<Buildingsite>, BuildingsiteDataService>();
|
||||
services.AddTransient<IDataService<Buildingsite>, BuildingsiteDataService>();
|
||||
services.AddSingleton<IDataService<SewerObject>, SewerObjectDataService>();
|
||||
services.AddSingleton<IDataService<SewerPoint>, SewerpointDataService>();
|
||||
services.AddSingleton<IProjectService, ProjectService>();
|
||||
|
||||
@@ -28,18 +28,38 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
services.AddTransient<MainWindowViewModel>();
|
||||
services.AddSingleton<ClientListViewModel>();
|
||||
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<ClientListViewModel>>();
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<ClientEditViewModel>>();
|
||||
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<ProjectListViewModel>>();
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<ProjectEditViewModel>>();
|
||||
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<BuildingsiteListViewModel>>();
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<BuildingsiteEditViewModel>>();
|
||||
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<SewerObjectListViewModel>>();
|
||||
|
||||
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
|
||||
{
|
||||
return () => new HomeViewModel();
|
||||
});
|
||||
services.AddSingleton<CreateViewModel<ClientEditViewModel>>(services =>
|
||||
services.AddTransient<CreateViewModel<ClientEditViewModel>>(services =>
|
||||
{
|
||||
return () => new ClientEditViewModel(
|
||||
services.GetRequiredService<IDataService<Client>>(),
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
new ViewModelDelegateRenavigator(
|
||||
services.GetRequiredService<IMainWindowNavigator>()
|
||||
));
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<ClientListViewModel>>()
|
||||
);
|
||||
|
||||
});
|
||||
services.AddTransient<CreateViewModel<ProjectEditViewModel>>(services =>
|
||||
{
|
||||
return () => new ProjectEditViewModel(
|
||||
services.GetRequiredService<IDataService<Project>>(),
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<ProjectListViewModel>>(),
|
||||
services.GetRequiredService<IProjectService>()
|
||||
);
|
||||
});
|
||||
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
|
||||
{
|
||||
@@ -60,14 +80,14 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
services.GetRequiredService<IDataService<SewerObject>>());
|
||||
});
|
||||
|
||||
services.AddSingleton<CreateViewModel<ClientListViewModel>>(services =>
|
||||
services.AddTransient<CreateViewModel<ClientListViewModel>>(services =>
|
||||
{
|
||||
return () => new ClientListViewModel(
|
||||
services.GetRequiredService<IDataService<Client>>(),
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
new ViewModelDelegateRenavigator(
|
||||
services.GetRequiredService<IMainWindowNavigator>()
|
||||
));
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<ClientEditViewModel>>()
|
||||
);
|
||||
|
||||
});
|
||||
services.AddSingleton<CreateViewModel<SewerMainListViewModel>>(services =>
|
||||
{
|
||||
@@ -76,9 +96,7 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
services.GetRequiredService<ISewerMainNavigator>(),
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
services.GetRequiredService<IViewModelSewerMainFactory>(),
|
||||
new ViewModelDelegateRenavigator(
|
||||
services.GetRequiredService<IMainWindowNavigator>()
|
||||
),
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<SewerObjectListViewModel>>(),
|
||||
services.GetRequiredService<ISewerObjectService>(),
|
||||
services.GetRequiredService<ISewerpointService>()
|
||||
);
|
||||
@@ -88,24 +106,31 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
return () => new ProjectListViewModel(
|
||||
services.GetRequiredService<IDataService<Project>>(),
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
new ViewModelDelegateRenavigator(
|
||||
services.GetRequiredService<IMainWindowNavigator>()),
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<ProjectEditViewModel>>(),
|
||||
services.GetRequiredService<IProjectService>()
|
||||
|
||||
);
|
||||
});
|
||||
|
||||
services.AddSingleton<CreateViewModel<BuildingsiteListViewModel>>(services =>
|
||||
services.AddTransient<CreateViewModel<BuildingsiteListViewModel>>(services =>
|
||||
{
|
||||
return () => new BuildingsiteListViewModel(
|
||||
services.GetRequiredService<IDataService<Buildingsite>>(),
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
new ViewModelDelegateRenavigator(
|
||||
services.GetRequiredService<IMainWindowNavigator>()),
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<BuildingsiteEditViewModel>>(),
|
||||
services.GetRequiredService<IBuildingsiteService>()
|
||||
);
|
||||
});
|
||||
|
||||
services.AddTransient<CreateViewModel<BuildingsiteEditViewModel>>(services =>
|
||||
{
|
||||
return () => new BuildingsiteEditViewModel(
|
||||
services.GetRequiredService<IDataService<Buildingsite>>(),
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<BuildingsiteListViewModel>>()
|
||||
);
|
||||
});
|
||||
|
||||
services.AddSingleton<CreateViewModel<SewerObjectListViewModel>>(services =>
|
||||
{
|
||||
return () => new SewerObjectListViewModel(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"databaseToUse": "sqlite",
|
||||
"databaseToUse": "default",
|
||||
"default": "Host = localhost; Database = dasaso; Username = kansan; Password = kansan",
|
||||
"sqlite": "Data Source=database.db"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user