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