112 lines
4.6 KiB
C#
112 lines
4.6 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using SewerStammGen.WPF.Commands;
|
|
using SewerStammGen.WPF.Interface;
|
|
using SewerStammGen.WPF.ViewModel;
|
|
using SewerStammGen.WPF.ViewModel.State.Navigation;
|
|
using SewerStammGen.WPF.ViewModel.Factories;
|
|
using Shared.Contracts;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net.Security;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using SewerStammGen.WPF.ViewModel.State;
|
|
using SewerStammGen.Shared.Contracts;
|
|
using SewerStammGen.Shared.Domain;
|
|
|
|
namespace SewerStammGen.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<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<IDataService<Projekt>>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ManholeEditViewModel>>(),
|
|
services.GetRequiredService<IActualState>(),
|
|
services.GetRequiredService<ISchachtService>()
|
|
);
|
|
});
|
|
|
|
services.AddSingleton<CreateViewModel<ManholeEditViewModel>>(services =>
|
|
{
|
|
return () => new ManholeEditViewModel(
|
|
services.GetRequiredService<IDataService<Schacht>>(),
|
|
services.GetRequiredService<IActualState>()
|
|
);
|
|
});
|
|
#endregion
|
|
|
|
#region Haltungen
|
|
services.AddSingleton<CreateViewModel<HaltungListViewModel>>(services =>
|
|
{
|
|
return () => new HaltungListViewModel(
|
|
|
|
services.GetRequiredService<IActualState>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<HaltungEditViewModel>>()
|
|
);
|
|
});
|
|
|
|
services.AddTransient<CreateViewModel<HaltungEditViewModel>>(services =>
|
|
{
|
|
return () => new HaltungEditViewModel(
|
|
|
|
services.GetRequiredService<ISchachtService>(),
|
|
services.GetRequiredService<IActualState>()
|
|
);
|
|
});
|
|
#endregion
|
|
|
|
#region Projekte
|
|
services.AddSingleton<CreateViewModel<ProjektEditViewModel>>(services =>
|
|
{
|
|
return () => new ProjektEditViewModel(
|
|
services.GetRequiredService<IProjektDataService>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektListViewModel>>(),
|
|
services.GetRequiredService<IActualState>()
|
|
);
|
|
});
|
|
|
|
services.AddSingleton<CreateViewModel<ProjektListViewModel>>(services =>
|
|
{
|
|
return () => new ProjektListViewModel(
|
|
services.GetRequiredService<IProjektDataService>(),
|
|
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektEditViewModel>>(),
|
|
services.GetRequiredService<IActualState>()
|
|
);
|
|
});
|
|
#endregion
|
|
|
|
services.AddSingleton<IViewModelAbstractFactory, MainWindowViewModelFactory>();
|
|
});
|
|
|
|
return hostBuilder;
|
|
}
|
|
}
|
|
}
|