using DaSaSo.Domain.Enums; using DaSaSo.Wpf.ViewModel.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DaSaSo.Wpf.ViewModel.Factories { public class SewerWindowViewModelFactory : IViewModelSewerMainFactory { private CreateViewModel _createSewerStammdatenViewModel; private CreateViewModel _createSewerDamageListViewModel; private CreateViewModel _createSewerDamageEditViewModel; private CreateViewModel _createSewerPipeLinerViewModel; private CreateViewModel _createSewerPictureDocumentationViewModel; public SewerWindowViewModelFactory( CreateViewModel createSewerStammdatenViewModel, CreateViewModel createSewerDamageListViewModel, CreateViewModel createSewerDamageEditViewModel, CreateViewModel createSewerPipeLinerViewModel, CreateViewModel createSewerPictureDocumentationViewModel ) { _createSewerStammdatenViewModel = createSewerStammdatenViewModel; _createSewerDamageListViewModel = createSewerDamageListViewModel; _createSewerDamageEditViewModel = createSewerDamageEditViewModel; _createSewerPipeLinerViewModel = createSewerPipeLinerViewModel; _createSewerPictureDocumentationViewModel = createSewerPictureDocumentationViewModel; } public BaseViewModel CreateViewModel(ESewerWindowViewType viewType) { switch (viewType) { case ESewerWindowViewType.SewerStammdaten: return _createSewerStammdatenViewModel(); case ESewerWindowViewType.SewerDamageList: return _createSewerDamageListViewModel(); case ESewerWindowViewType.SewerDamageEdit: return _createSewerDamageEditViewModel(); case ESewerWindowViewType.SewerPipeLiner: return _createSewerPipeLinerViewModel(); case ESewerWindowViewType.SewerPictureDocumentation: return _createSewerPictureDocumentationViewModel(); default: throw new ArgumentException("The Viewtype does not have a ViewModel", "viewType"); } } } }