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 ViewModelAbstractFactory : IViewModelAbstractFactory { private CreateViewModel _createHomeViewModel; private CreateViewModel _createClientListViewModel; private CreateViewModel _createClientEditViewModel; private CreateViewModel _createProjektListViewModel; private CreateViewModel _createBuildingsiteListViewModel; private CreateViewModel _createSewerObjectListViewModel; public ViewModelAbstractFactory( 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(EViewType viewType) { switch (viewType) { case EViewType.Home: return _createHomeViewModel(); case EViewType.Clients: return _createClientListViewModel(); case EViewType.ClientEdit: return _createClientEditViewModel(); case EViewType.Projects: return _createProjektListViewModel(); case EViewType.Buildingsites: return _createBuildingsiteListViewModel(); case EViewType.SewerObjects: return _createSewerObjectListViewModel(); default: throw new ArgumentException("The Viewtype does not have a ViewModel.", "viewType"); } } } }