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(); services.AddSingleton(); services.AddSingleton>(services => { return () => new HomeViewModel(); }); services.AddSingleton>(services => { return () => new ClientEditViewModel( services.GetRequiredService>(), services.GetRequiredService(), new ViewModelDelegateRenavigator( services.GetRequiredService() )); }); services.AddSingleton>(services => { return () => new HomeViewModel(); }); services.AddTransient>(services => { return () => new SewerStammdatenViewModel( services.GetRequiredService() ); }); services.AddSingleton>(services => { return () => new SewerDamageListViewModel(); }); services.AddSingleton>(services => { return () => new ClientListViewModel( services.GetRequiredService>(), services.GetRequiredService(), new ViewModelDelegateRenavigator( services.GetRequiredService() )); }); services.AddSingleton>(services => { return () => new SewerMainListViewModel( services.GetRequiredService>(), services.GetRequiredService(), services.GetRequiredService(), services.GetRequiredService(), new ViewModelDelegateRenavigator( services.GetRequiredService() ), services.GetRequiredService(), services.GetRequiredService() ); }); services.AddSingleton>(services => { return () => new ProjectListViewModel( services.GetRequiredService>(), services.GetRequiredService(), new ViewModelDelegateRenavigator( services.GetRequiredService()), services.GetRequiredService() ); }); services.AddSingleton>(services => { return () => new BuildingsiteListViewModel( services.GetRequiredService>(), services.GetRequiredService(), new ViewModelDelegateRenavigator( services.GetRequiredService()), services.GetRequiredService() ); }); services.AddSingleton>(services => { return () => new SewerObjectListViewModel( services.GetRequiredService>(), services.GetRequiredService(), services.GetRequiredService() ); }); services.AddSingleton(); services.AddSingleton(); }); return host; } } }