Gui neu angelegt

This commit is contained in:
2023-04-20 20:37:39 +02:00
parent 0877d2b308
commit bcbda7622c
83 changed files with 389 additions and 502 deletions

View File

@@ -0,0 +1,24 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StammGenerator.HostBuilders
{
static class AddConfigurationHostBuilderExtensions
{
public static IHostBuilder AddConfiguration(this IHostBuilder hostBuilder)
{
hostBuilder.ConfigureAppConfiguration(c =>
{
c.AddJsonFile("appsettings.json");
c.AddEnvironmentVariables();
}
);
return hostBuilder;
}
}
}

View File

@@ -0,0 +1,18 @@

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StammGenerator.HostBuilders
{
static class AddDBContextHostBuilderExtensions
{
}
}

View File

@@ -0,0 +1,40 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SewerStammGen.Shared.Contracts;
using StammGenerator.Interface;
using StammGenerator.ViewModel;
using System;
namespace StammGenerator.HostBuilders
{
internal static class AddServicesHostBuilderExtensions
{
public static IHostBuilder AddServices(this IHostBuilder host)
{
host.ConfigureServices((context,services) =>
{
services.AddSingleton<IMainWindowNavigator, MainWindowNavigator>();
services.AddSingleton<ViewModelDelegateRenavigator<ProjektEditViewModel>>();
string? databaseToUse = context.Configuration.GetConnectionString("databaseToUse");
if(databaseToUse != null)
{
if(databaseToUse.Equals("postgresql"))
{
string? connectionstring = context.Configuration.GetConnectionString("postgresql");
if(connectionstring == null) throw new ArgumentNullException(nameof(connectionstring));
services.AddSingleton<IProjektDataService>(_=> new SewerStammGen.DAL.Services.PostgresqlData.ProjektDataService(connectionstring));
services.AddSingleton<IAuftraggeberDataService>(_ => new SewerStammGen.DAL.Services.PostgresqlData.AuftraggeberDataService(connectionstring));
services.AddSingleton<ISchachtDataService>(_ => new SewerStammGen.DAL.Services.PostgresqlData.SchachtDataService(connectionstring));
services.AddSingleton<IHaltungDataService>(_ => new SewerStammGen.DAL.Services.PostgresqlData.HaltungDataService(connectionstring));
}
}
});
return host;
}
}
}

View File

@@ -0,0 +1,18 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using StammGenerator.ViewModel;
namespace StammGenerator.HostBuilders
{
static class AddStoresHostBuilderExtensions
{
public static IHostBuilder AddStores(this IHostBuilder hostBuilder)
{
hostBuilder.ConfigureServices(services =>
{
services.AddSingleton<IActualState, ActualState>();
});
return hostBuilder;
}
}
}

View File

@@ -0,0 +1,111 @@
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.GetRequiredService<ViewModelDelegateRenavigator<ManholeImportViewModel>>()
);
});
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<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;
}
}
}