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 IViewModelFactory _homeViewModelFactory; private IViewModelFactory _clientListViewModelFactory; private IViewModelFactory _clientEditViewModelFactory; public ViewModelAbstractFactory(IViewModelFactory homeViewModelFactory, IViewModelFactory clientListViewModel, IViewModelFactory clientEditViewModel) { _homeViewModelFactory = homeViewModelFactory; _clientListViewModelFactory = clientListViewModel; _clientEditViewModelFactory = clientEditViewModel; } public BaseViewModel CreateViewModel(EViewType viewType) { switch (viewType) { case EViewType.Home: return _homeViewModelFactory.CreateViewModel(); case EViewType.Clients: return _clientListViewModelFactory.CreateViewModel(); case EViewType.ClientEdit: return _clientEditViewModelFactory.CreateViewModel(); /*case EViewType.Projects: break; case EViewType.Buildingsites: break; case EViewType.SewerObjects: break; */ default: throw new ArgumentException("The Viewtype dos not have a ViewModel.", "viewType"); } } } }