69 lines
3.3 KiB
C#
69 lines
3.3 KiB
C#
using DaSaSo.Domain.Enums;
|
|
using DaSaSo.Wpf.ViewModel.Interface;
|
|
using System;
|
|
|
|
namespace DaSaSo.Wpf.ViewModel.Factories
|
|
{
|
|
public class MainWindowViewModelFactory : IViewModelAbstractFactory
|
|
{
|
|
private CreateViewModel<HomeViewModel> _createHomeViewModel;
|
|
private CreateViewModel<ClientListViewModel> _createClientListViewModel;
|
|
private CreateViewModel<ClientEditViewModel> _createClientEditViewModel;
|
|
private CreateViewModel<ProjectListViewModel> _createProjektListViewModel;
|
|
private CreateViewModel<BuildingsiteListViewModel> _createBuildingsiteListViewModel;
|
|
private CreateViewModel<SewerObjectListViewModel> _createSewerObjectListViewModel;
|
|
private CreateViewModel<SewerMainListViewModel> _createSewerMainMenuListViewModel;
|
|
private CreateViewModel<ImpregnierungListViewModel> _createImpregnierungListViewModel;
|
|
|
|
public MainWindowViewModelFactory(
|
|
CreateViewModel<HomeViewModel> createHomeViewModel,
|
|
CreateViewModel<ClientListViewModel> createClientListViewModel,
|
|
CreateViewModel<ClientEditViewModel> createClientEditViewModel,
|
|
CreateViewModel<ProjectListViewModel> createProjektListViewModel,
|
|
CreateViewModel<BuildingsiteListViewModel> createBuildingsiteListViewModel,
|
|
CreateViewModel<SewerObjectListViewModel> createSewerObjectListViewModel,
|
|
CreateViewModel<SewerMainListViewModel> createSewerMainMenuListViewModel,
|
|
CreateViewModel<ImpregnierungListViewModel> createImpregnierungListViewModel
|
|
)
|
|
{
|
|
_createHomeViewModel = createHomeViewModel;
|
|
_createClientListViewModel = createClientListViewModel;
|
|
_createClientEditViewModel = createClientEditViewModel;
|
|
_createProjektListViewModel = createProjektListViewModel;
|
|
_createBuildingsiteListViewModel = createBuildingsiteListViewModel;
|
|
_createSewerObjectListViewModel = createSewerObjectListViewModel;
|
|
_createSewerMainMenuListViewModel = createSewerMainMenuListViewModel;
|
|
_createImpregnierungListViewModel = createImpregnierungListViewModel;
|
|
|
|
}
|
|
|
|
public BaseViewModel CreateViewModel(EMainWindowViewType viewType)
|
|
{
|
|
|
|
switch (viewType)
|
|
{
|
|
case EMainWindowViewType.Home:
|
|
return _createHomeViewModel();
|
|
case EMainWindowViewType.Clients:
|
|
return _createClientListViewModel();
|
|
case EMainWindowViewType.ClientEdit:
|
|
return _createClientEditViewModel();
|
|
case EMainWindowViewType.Projects:
|
|
return _createProjektListViewModel();
|
|
case EMainWindowViewType.Buildingsites:
|
|
return _createBuildingsiteListViewModel();
|
|
case EMainWindowViewType.SewerObjects:
|
|
return _createSewerObjectListViewModel();
|
|
case EMainWindowViewType.SewerMainMenu:
|
|
return _createSewerMainMenuListViewModel();
|
|
case EMainWindowViewType.Impregnierung:
|
|
return _createImpregnierungListViewModel();
|
|
|
|
|
|
default:
|
|
throw new ArgumentException("The Viewtype does not have a ViewModel.", "viewType");
|
|
}
|
|
}
|
|
}
|
|
}
|