116 lines
5.3 KiB
C#
116 lines
5.3 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using SewerStammGen.Shared.Contracts;
|
|
using StammGenerator.Interface;
|
|
using StammGenerator.ViewModel;
|
|
using StammGenerator.ViewModel.Factories;
|
|
|
|
namespace StammGenerator.HostBuilders
|
|
{
|
|
static class AddViewModelsHostBuilderExtensions
|
|
{
|
|
public static IHostBuilder AddViewModels(this IHostBuilder hostBuilder)
|
|
{
|
|
hostBuilder.ConfigureServices(services =>
|
|
{
|
|
|
|
services.AddTransient<MainWindowViewModel>();
|
|
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ProjektListViewModel>>();
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ProjektEditViewModel>>();
|
|
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ManholeListViewModel>>();
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ManholeEditViewModel>>();
|
|
services.AddSingleton<ViewModelDelegateRenavigator<ManholeImportViewModel>>();
|
|
|
|
services.AddSingleton<ViewModelDelegateRenavigator<HaltungListViewModel>>();
|
|
services.AddSingleton<ViewModelDelegateRenavigator<HaltungEditViewModel>>();
|
|
|
|
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
|
|
{
|
|
return () => new HomeViewModel();
|
|
});
|
|
|
|
#region Schächte
|
|
services.AddSingleton<CreateViewModel<ManholeListViewModel>>(services =>
|
|
{
|
|
return () => new ManholeListViewModel(
|
|
services.GetRequiredService<ISchachtDataService>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ManholeEditViewModel>>(),
|
|
services.GetRequiredService<IActualState>()
|
|
);
|
|
});
|
|
|
|
services.AddSingleton<CreateViewModel<ManholeEditViewModel>>(services =>
|
|
{
|
|
return () => new ManholeEditViewModel(
|
|
services.GetRequiredService<ISchachtDataService>(),
|
|
services.GetRequiredService<IActualState>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ManholeListViewModel>>()
|
|
);
|
|
});
|
|
|
|
services.AddSingleton<CreateViewModel<ManholeImportViewModel>>(services =>
|
|
{
|
|
return () => new ManholeImportViewModel(
|
|
services.GetRequiredService<ISchachtDataService>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ManholeListViewModel>>(),
|
|
services.GetRequiredService<IActualState>()
|
|
);
|
|
});
|
|
#endregion
|
|
|
|
#region Haltungen
|
|
services.AddSingleton<CreateViewModel<HaltungListViewModel>>(services =>
|
|
{
|
|
return () => new HaltungListViewModel(
|
|
services.GetRequiredService<IHaltungDataService>(),
|
|
services.GetRequiredService<IActualState>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<HaltungEditViewModel>>()
|
|
);
|
|
});
|
|
|
|
services.AddTransient<CreateViewModel<HaltungEditViewModel>>(services =>
|
|
{
|
|
return () => new HaltungEditViewModel(
|
|
services.GetRequiredService<IHaltungDataService>(),
|
|
services.GetRequiredService<IActualState>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<HaltungListViewModel>>(),
|
|
services.GetRequiredService<ISchachtDataService>()
|
|
);
|
|
});
|
|
#endregion
|
|
|
|
#region Projekte
|
|
services.AddSingleton<CreateViewModel<ProjektEditViewModel>>(services =>
|
|
{
|
|
return () => new ProjektEditViewModel(
|
|
services.GetRequiredService<IProjektDataService>(),
|
|
services.GetRequiredService<IAuftraggeberDataService>(),
|
|
services.GetRequiredService<IActualState>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektListViewModel>>()
|
|
|
|
);
|
|
});
|
|
|
|
services.AddSingleton<CreateViewModel<ProjektListViewModel>>(services =>
|
|
{
|
|
return () => new ProjektListViewModel(
|
|
services.GetRequiredService<IProjektDataService>(),
|
|
services.GetRequiredService<IHaltungDataService>(),
|
|
services.GetRequiredService<ISchachtDataService>(),
|
|
services.GetRequiredService<IActualState>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektEditViewModel>>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ManholeImportViewModel>>()
|
|
);
|
|
});
|
|
#endregion
|
|
|
|
services.AddSingleton<IViewModelAbstractFactory, MainWindowViewModelFactory>();
|
|
});
|
|
|
|
return hostBuilder;
|
|
}
|
|
}
|
|
}
|