159 lines
7.6 KiB
C#
159 lines
7.6 KiB
C#
using DaSaSo.Domain.Model;
|
|
using DaSaSo.Domain.Services;
|
|
using DaSaSo.Domain.Services.BuildingsiteServices;
|
|
using DaSaSo.Domain.Services.ProjectServices;
|
|
using DaSaSo.Domain.Services.SewerObjectService;
|
|
using DaSaSo.Domain.Services.SewerPointServices;
|
|
using DaSaSo.ViewModel;
|
|
using DaSaSo.ViewModel.Factories;
|
|
using DaSaSo.ViewModel.Interface;
|
|
using DaSaSo.ViewModel.State.Navigation;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace DaSaSo.Wpf.HostBuilders
|
|
{
|
|
public static class AddViewModelsHostBuilderExtensions
|
|
{
|
|
public static IHostBuilder AddViewModels(this IHostBuilder host)
|
|
{
|
|
host.ConfigureServices(services =>
|
|
{
|
|
|
|
services.AddTransient<MainWindowViewModel>();
|
|
services.AddSingleton<ClientListViewModel>();
|
|
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ClientListViewModel>>();
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ClientEditViewModel>>();
|
|
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ProjectListViewModel>>();
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ProjectEditViewModel>>();
|
|
|
|
services.AddSingleton<ViewModelDelegateRenavigator<BuildingsiteListViewModel>>();
|
|
services.AddSingleton<ViewModelDelegateRenavigator<BuildingsiteEditViewModel>>();
|
|
|
|
services.AddSingleton<ViewModelDelegateRenavigator<SewerObjectListViewModel>>();
|
|
|
|
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
|
|
{
|
|
return () => new HomeViewModel();
|
|
});
|
|
services.AddTransient<CreateViewModel<ClientEditViewModel>>(services =>
|
|
{
|
|
return () => new ClientEditViewModel(
|
|
services.GetRequiredService<IDataService<Client>>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ClientListViewModel>>()
|
|
);
|
|
|
|
});
|
|
services.AddTransient<CreateViewModel<ProjectEditViewModel>>(services =>
|
|
{
|
|
return () => new ProjectEditViewModel(
|
|
services.GetRequiredService<IDataService<Project>>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ProjectListViewModel>>(),
|
|
services.GetRequiredService<IProjectService>()
|
|
);
|
|
});
|
|
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
|
|
{
|
|
return () => new HomeViewModel();
|
|
});
|
|
services.AddTransient<CreateViewModel<SewerStammdatenViewModel>>(services =>
|
|
{
|
|
return () => new SewerStammdatenViewModel(
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<IDataService<SewerObject>>(),
|
|
services.GetRequiredService<ISewerpointService>()
|
|
);
|
|
});
|
|
services.AddTransient<CreateViewModel<SewerDamageListViewModel>>(services =>
|
|
{
|
|
return () => new SewerDamageListViewModel(
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<IDataService<SewerObject>>()//,
|
|
//services.GetRequiredService<SewerMainListViewModel>()
|
|
);
|
|
});
|
|
services.AddTransient<CreateViewModel<SewerDamageEditViewModel>>(services =>
|
|
{
|
|
return () => new SewerDamageEditViewModel(
|
|
services.GetRequiredService<IActualProject>()
|
|
);
|
|
});
|
|
|
|
services.AddTransient<CreateViewModel<ClientListViewModel>>(services =>
|
|
{
|
|
return () => new ClientListViewModel(
|
|
services.GetRequiredService<IDataService<Client>>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ClientEditViewModel>>()
|
|
);
|
|
|
|
});
|
|
services.AddSingleton<CreateViewModel<SewerMainListViewModel>>(services =>
|
|
{
|
|
return () => new SewerMainListViewModel(
|
|
services.GetRequiredService<IDataService<SewerObject>>(),
|
|
services.GetRequiredService<ISewerMainNavigator>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<IViewModelSewerMainFactory>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<SewerObjectListViewModel>>(),
|
|
services.GetRequiredService<ISewerObjectService>(),
|
|
services.GetRequiredService<ISewerpointService>()
|
|
);
|
|
});
|
|
services.AddSingleton<CreateViewModel<ProjectListViewModel>>(services =>
|
|
{
|
|
return () => new ProjectListViewModel(
|
|
services.GetRequiredService<IDataService<Project>>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ProjectEditViewModel>>(),
|
|
services.GetRequiredService<IProjectService>()
|
|
|
|
);
|
|
});
|
|
|
|
services.AddTransient<CreateViewModel<BuildingsiteListViewModel>>(services =>
|
|
{
|
|
return () => new BuildingsiteListViewModel(
|
|
services.GetRequiredService<IDataService<Buildingsite>>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<BuildingsiteEditViewModel>>(),
|
|
services.GetRequiredService<IBuildingsiteService>()
|
|
);
|
|
});
|
|
|
|
services.AddTransient<CreateViewModel<BuildingsiteEditViewModel>>(services =>
|
|
{
|
|
return () => new BuildingsiteEditViewModel(
|
|
services.GetRequiredService<IDataService<Buildingsite>>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<BuildingsiteListViewModel>>()
|
|
);
|
|
});
|
|
|
|
services.AddSingleton<CreateViewModel<SewerObjectListViewModel>>(services =>
|
|
{
|
|
return () => new SewerObjectListViewModel(
|
|
services.GetRequiredService<IDataService<SewerObject>>(),
|
|
services.GetRequiredService<IActualProject>(),
|
|
services.GetRequiredService<ISewerObjectService>()
|
|
);
|
|
});
|
|
|
|
services.AddSingleton<IViewModelAbstractFactory, MainWindowViewModelFactory>();
|
|
services.AddSingleton<IViewModelSewerMainFactory, SewerWindowViewModelFactory>();
|
|
});
|
|
return host;
|
|
}
|
|
|
|
}
|
|
}
|