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(); services.AddSingleton>(); services.AddSingleton>(); services.AddSingleton>(); services.AddSingleton>(); services.AddSingleton>(); services.AddSingleton>(); services.AddSingleton>(services => { return () => new HomeViewModel(); }); #region Schächte services.AddSingleton>(services => { return () => new ManholeListViewModel( services.GetRequiredService(), services.GetRequiredService>(), services.GetRequiredService>(), services.GetRequiredService() ); }); services.AddSingleton>(services => { return () => new ManholeEditViewModel( services.GetRequiredService>(), services.GetRequiredService() ); }); #endregion #region Haltungen services.AddSingleton>(services => { return () => new HaltungListViewModel( services.GetRequiredService(), services.GetRequiredService>() ); }); services.AddTransient>(services => { return () => new HaltungEditViewModel( services.GetRequiredService() ); }); #endregion #region Projekte services.AddSingleton>(services => { return () => new ProjektEditViewModel( services.GetRequiredService(), services.GetRequiredService>(), services.GetRequiredService() ); }); services.AddSingleton>(services => { return () => new ProjektListViewModel( services.GetRequiredService(), services.GetRequiredService>(), services.GetRequiredService() ); }); #endregion services.AddSingleton(); }); return hostBuilder; } } }