Umbau auf delegate command

This commit is contained in:
HuskyTeufel
2021-09-15 17:21:56 +02:00
parent b213cefa99
commit e22f1eded2
9 changed files with 103 additions and 137 deletions

View File

@@ -1,5 +1,6 @@
namespace DaSaSo.ViewModel
{
public delegate TViewModel CreateViewModel<TViewModel>() where TViewModel : BaseViewModel;
public class BaseViewModel : ObservableObject
{

View File

@@ -1,29 +0,0 @@
using DaSaSo.Domain.Model;
using DaSaSo.EntityFramework;
using DaSaSo.EntityFramework.Services;
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 ClientEditViewModelFactory : IViewModelFactory<ClientEditViewModel>
{
private readonly IActualProject _actualProject;
private readonly IRenavigator renavigator;
public ClientEditViewModelFactory(IActualProject actualProject, IRenavigator renavigator)
{
_actualProject = actualProject;
this.renavigator = renavigator;
}
public ClientEditViewModel CreateViewModel()
{
return new ClientEditViewModel(new GenericDataService<Client>(new DaSaSoDbContextFactory()), _actualProject,renavigator);
}
}
}

View File

@@ -1,29 +0,0 @@
using DaSaSo.Domain.Model;
using DaSaSo.EntityFramework;
using DaSaSo.EntityFramework.Services;
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 ClientListViewModelFactory : IViewModelFactory<ClientListViewModel>
{
private readonly IActualProject _actualProject;
private readonly IRenavigator renavigator;
public ClientListViewModelFactory(IActualProject actualProject, IRenavigator renavigator)
{
_actualProject = actualProject;
this.renavigator = renavigator;
}
public ClientListViewModel CreateViewModel()
{
return new ClientListViewModel(new GenericDataService<Client>(new DaSaSoDbContextFactory()),_actualProject, renavigator);
}
}
}

View File

@@ -1,17 +0,0 @@
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 HomeViewModelFactory : IViewModelFactory<HomeViewModel>
{
public HomeViewModel CreateViewModel()
{
return new HomeViewModel();
}
}
}

View File

@@ -13,15 +13,22 @@ namespace DaSaSo.ViewModel.Factories
{
public class ViewModelAbstractFactory : IViewModelAbstractFactory
{
private IViewModelFactory<HomeViewModel> _homeViewModelFactory;
private IViewModelFactory<ClientListViewModel> _clientListViewModelFactory;
private IViewModelFactory<ClientEditViewModel> _clientEditViewModelFactory;
private CreateViewModel<HomeViewModel> _createHomeViewModel;
private CreateViewModel<ClientListViewModel> _createClientListViewModel;
private CreateViewModel<ClientEditViewModel> _createClientEditViewModel;
private CreateViewModel<ProjectListViewModel> _createProjektListViewModel;
public ViewModelAbstractFactory(IViewModelFactory<HomeViewModel> homeViewModelFactory, IViewModelFactory<ClientListViewModel> clientListViewModel, IViewModelFactory<ClientEditViewModel> clientEditViewModel)
public ViewModelAbstractFactory(
CreateViewModel<HomeViewModel> createHomeViewModel,
CreateViewModel<ClientListViewModel> createClientListViewModel/*,
CreateViewModel<ClientEditViewModel> createClientEditViewModel,
CreateViewModel<ProjectListViewModel> createProjektListViewModel*/
)
{
_homeViewModelFactory = homeViewModelFactory;
_clientListViewModelFactory = clientListViewModel;
_clientEditViewModelFactory = clientEditViewModel;
_createHomeViewModel = createHomeViewModel;
_createClientListViewModel = createClientListViewModel;
/*_createClientEditViewModel = createClientEditViewModel;
_createProjektListViewModel = createProjektListViewModel;*/
}
public BaseViewModel CreateViewModel(EViewType viewType)
@@ -30,14 +37,14 @@ namespace DaSaSo.ViewModel.Factories
switch (viewType)
{
case EViewType.Home:
return _homeViewModelFactory.CreateViewModel();
return _createHomeViewModel();
case EViewType.Clients:
return _clientListViewModelFactory.CreateViewModel();
return _createClientListViewModel();
case EViewType.ClientEdit:
return _clientEditViewModelFactory.CreateViewModel();
/*case EViewType.Projects:
break;
case EViewType.Buildingsites:
return _createClientEditViewModel();
case EViewType.Projects:
return _createProjektListViewModel();
/*case EViewType.Buildingsites:
break;
case EViewType.SewerObjects:
break;

View File

@@ -1,5 +1,6 @@
using DaSaSo.Domain.Model;
using DaSaSo.EntityFramework.Services;
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -12,15 +13,18 @@ namespace DaSaSo.ViewModel
public class ProjectListViewModel : BaseViewModel
{
private GenericDataService<Project> genericDataService;
private Client selectedClient;
private IActualProject actualProject;
private IRenavigator renavigator;
public ObservableCollection<Project> Projekte { get; }
public ProjectListViewModel(GenericDataService<Project> genericDataService, Client selectedClient)
public ProjectListViewModel(GenericDataService<Project> genericDataService, IActualProject actualProject, IRenavigator renavigator)
{
this.genericDataService = genericDataService;
Projekte = new ObservableCollection<Project>();
LoadProjecte();
this.genericDataService = genericDataService;
this.actualProject = actualProject;
this.renavigator = renavigator;
}
public async void LoadProjecte()

View File

@@ -0,0 +1,26 @@
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel.State.Navigation
{
public class ViewModelDelegateRenavigator<TViewModel> : IRenavigator where TViewModel : BaseViewModel
{
private readonly INavigator _navigator;
private readonly CreateViewModel<TViewModel> _createViewModel;
public ViewModelDelegateRenavigator(INavigator navigator, CreateViewModel<TViewModel> createViewModel)
{
_navigator = navigator;
_createViewModel = createViewModel;
}
public void Renavigate()
{
_navigator.CurrentViewModel = _createViewModel();
}
}
}

View File

@@ -1,26 +0,0 @@
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel.State.Navigation
{
public class ViewModelFactoryRenavigator<TViewModel> : IRenavigator where TViewModel : BaseViewModel
{
private readonly INavigator _navigator;
private readonly IViewModelFactory<TViewModel> _viewModelFactory;
public ViewModelFactoryRenavigator(INavigator navigator, IViewModelFactory<TViewModel> viewModelFactory)
{
_navigator = navigator;
_viewModelFactory = viewModelFactory;
}
public void Renavigate()
{
_navigator.CurrentViewModel = _viewModelFactory.CreateViewModel();
}
}
}