using DaSaSo.Domain.Model; using DaSaSo.EntityFramework; using DaSaSo.EntityFramework.Services; using DaSaSo.ViewModel.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 MainWindowViewModelFactory : IViewModelAbstractFactory { private CreateViewModel _createHomeViewModel; private CreateViewModel _createClientListViewModel; private CreateViewModel _createClientEditViewModel; private CreateViewModel _createProjektListViewModel; private CreateViewModel _createBuildingsiteListViewModel; private CreateViewModel _createSewerObjectListViewModel; public MainWindowViewModelFactory( CreateViewModel createHomeViewModel, CreateViewModel createClientListViewModel, CreateViewModel createClientEditViewModel, CreateViewModel createProjektListViewModel, CreateViewModel createBuildingsiteListViewModel, CreateViewModel createSewerObjectListViewModel) { _createHomeViewModel = createHomeViewModel; _createClientListViewModel = createClientListViewModel; _createClientEditViewModel = createClientEditViewModel; _createProjektListViewModel = createProjektListViewModel; _createBuildingsiteListViewModel = createBuildingsiteListViewModel; _createSewerObjectListViewModel = createSewerObjectListViewModel; } 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(); default: throw new ArgumentException("The Viewtype does not have a ViewModel.", "viewType"); } } } }