Projekte können erstellt und geladen werden

This commit is contained in:
2023-03-30 20:56:21 +02:00
parent e5214e44c3
commit 70bba66df3
32 changed files with 1050 additions and 93 deletions

View File

@@ -18,24 +18,28 @@ namespace SewerStammGen.HostBuilders
{
hostBuilder.ConfigureServices((context, services) =>
{
string connectionString = "";
Action<DbContextOptionsBuilder> configureDbContext = null;
string databaseToUse = context.Configuration.GetConnectionString("databaseToUse");
Trace.WriteLine(databaseToUse);
if (databaseToUse.Equals("default"))
string? connectionString = "";
Action<DbContextOptionsBuilder>? configureDbContext = null;
string? databaseToUse = context.Configuration.GetConnectionString("databaseToUse");
if (databaseToUse != null)
{
connectionString = context.Configuration.GetConnectionString("default");
configureDbContext = o => o.UseNpgsql(connectionString);
}
else if (databaseToUse.Equals("sqlite"))
{
connectionString = context.Configuration.GetConnectionString("sqlite");
configureDbContext = o => o.UseSqlite(connectionString);
if (databaseToUse.Equals("default"))
{
connectionString = context.Configuration.GetConnectionString("default");
configureDbContext = o => o.UseNpgsql(connectionString);
}
else if (databaseToUse.Equals("sqlite"))
{
connectionString = context.Configuration.GetConnectionString("sqlite");
configureDbContext = o => o.UseSqlite(connectionString);
}
services.AddDbContext<SewerStammGenDbContext>(configureDbContext);
services.AddSingleton<SewerStammGenDbContextFactory>(new SewerStammGenDbContextFactory(configureDbContext));
}
services.AddDbContext<SewerStammGenDbContext>(configureDbContext);
services.AddSingleton<SewerStammGenDbContextFactory>(new SewerStammGenDbContextFactory(configureDbContext));
});
return hostBuilder;
}

View File

@@ -2,6 +2,7 @@
using Microsoft.Extensions.Hosting;
using SewerStammGen.EntityFramework.Services;
using SewerStammGen.WPF.Interface.Navigator;
using SewerStammGen.WPF.ViewModel;
using SewerStammGen.WPF.ViewModel.State.Navigation;
using Shared.Contracts;
using Shared.Domain;
@@ -21,7 +22,7 @@ namespace SewerStammGen.HostBuilders
host.ConfigureServices(services =>
{
services.AddSingleton<IMainWindowNavigator, MainWindowNavigator>();
services.AddSingleton<ViewModelDelegateRenavigator<ProjektEditViewModel>>();
services.AddSingleton<IDataService<Projekt>, GenericDataService<Projekt>>();
});
return host;

View File

@@ -1,4 +1,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SewerStammGen.WPF.ViewModel.State;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,7 +15,7 @@ namespace SewerStammGen.HostBuilders
{
hostBuilder.ConfigureServices(services =>
{
services.AddSingleton<IActualState, ActualState>();
});
return hostBuilder;
}

View File

@@ -1,7 +1,9 @@
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 Shared.Domain;
@@ -11,6 +13,7 @@ using System.Linq;
using System.Net.Security;
using System.Text;
using System.Threading.Tasks;
using SewerStammGen.WPF.ViewModel.State;
namespace SewerStammGen.HostBuilders
{
@@ -20,7 +23,12 @@ namespace SewerStammGen.HostBuilders
{
hostBuilder.ConfigureServices(services =>
{
services.AddTransient<MainWindowViewModel>();
services.AddSingleton<ViewModelDelegateRenavigator<ProjektListViewModel>>();
services.AddSingleton<ViewModelDelegateRenavigator<ProjektEditViewModel>>();
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
{
return () => new HomeViewModel();
@@ -36,10 +44,21 @@ namespace SewerStammGen.HostBuilders
return () => new SewerConnectorViewModel();
});
services.AddSingleton<CreateViewModel<ProjektEditViewModel>>(services =>
{
return () => new ProjektEditViewModel(
services.GetRequiredService<IDataService<Projekt>>(),
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektListViewModel>>(),
services.GetRequiredService<IActualState>()
);
});
services.AddSingleton<CreateViewModel<ProjektListViewModel>>(services =>
{
return () => new ProjektListViewModel(
services.GetRequiredService<IDataService<Projekt>>()
services.GetRequiredService<IDataService<Projekt>>(),
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektEditViewModel>>(),
services.GetRequiredService<IActualState>()
);
});