Projekte hinzugefügt

This commit is contained in:
2023-03-29 17:04:39 +02:00
parent a4c5b84ccf
commit e5214e44c3
9 changed files with 369 additions and 5 deletions

View File

@@ -1,6 +1,11 @@
using Microsoft.Extensions.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SewerStammGen.EntityFramework;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -13,7 +18,24 @@ 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"))
{
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));
});
return hostBuilder;
}

View File

@@ -1,7 +1,10 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SewerStammGen.EntityFramework.Services;
using SewerStammGen.WPF.Interface.Navigator;
using SewerStammGen.WPF.ViewModel.State.Navigation;
using Shared.Contracts;
using Shared.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -18,6 +21,8 @@ namespace SewerStammGen.HostBuilders
host.ConfigureServices(services =>
{
services.AddSingleton<IMainWindowNavigator, MainWindowNavigator>();
services.AddSingleton<IDataService<Projekt>, GenericDataService<Projekt>>();
});
return host;
}

View File

@@ -3,6 +3,8 @@ using Microsoft.Extensions.Hosting;
using SewerStammGen.WPF.Interface;
using SewerStammGen.WPF.ViewModel;
using SewerStammGen.WPF.ViewModel.Factories;
using Shared.Contracts;
using Shared.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -36,7 +38,9 @@ namespace SewerStammGen.HostBuilders
services.AddSingleton<CreateViewModel<ProjektListViewModel>>(services =>
{
return () => new ProjektListViewModel();
return () => new ProjektListViewModel(
services.GetRequiredService<IDataService<Projekt>>()
);
});
services.AddSingleton<IViewModelAbstractFactory, MainWindowViewModelFactory>();

View File

@@ -17,6 +17,10 @@
<PackageReference Include="Syncfusion.SfGrid.WPF" Version="20.4.0.54" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SewerStammGen.EntityFramework\SewerStammGen.EntityFramework.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>

View File

@@ -1,6 +1,10 @@
using SewerStammGen.WPF.ViewModel;
using SewerStammGen.EntityFramework.Services;
using SewerStammGen.WPF.ViewModel;
using Shared.Contracts;
using Shared.Domain;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -9,5 +13,31 @@ namespace SewerStammGen.WPF.ViewModel
{
public class ProjektListViewModel : BaseViewModel
{
private IDataService<Projekt> genericDataService;
private readonly ObservableCollection<Projekt> Projekte;
public ProjektListViewModel(IDataService<Projekt> generic)
{
Projekte = new ObservableCollection<Projekt>();
if (generic == null) throw new ArgumentNullException(nameof(generic));
this.genericDataService = generic;
LoadProjekte();
}
private async void LoadProjekte()
{
var projects = await genericDataService.GetAll();
InitCollection(Projekte, projects);
}
private void InitCollection(ObservableCollection<Projekt> projekte, IEnumerable<Projekt> projects)
{
projekte.Clear();
foreach(var i in projects)
{
projekte.Add(i);
}
}
}
}

View File

@@ -1,7 +1,7 @@
{
"ConnectionStrings": {
"databaseToUse": "default",
"default": "Host = localhost; Database = dasaso; Username = kansan; Password = kansan",
"default": "Host = localhost; Database = SewerGen; Username = SewerGen; Password = SewerGen",
"sqlite": "Data Source=database.db"
}
}