Projekte hinzugefügt
This commit is contained in:
233
SewerStammGen.EntityFramework/Migrations/20230329145638_AuftraggeberAddedToProject.Designer.cs
generated
Normal file
233
SewerStammGen.EntityFramework/Migrations/20230329145638_AuftraggeberAddedToProject.Designer.cs
generated
Normal file
@@ -0,0 +1,233 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using SewerStammGen.EntityFramework;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace SewerStammGen.EntityFramework.Migrations
|
||||
{
|
||||
[DbContext(typeof(SewerStammGenDbContext))]
|
||||
[Migration("20230329145638_AuftraggeberAddedToProject")]
|
||||
partial class AuftraggeberAddedToProject
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "7.0.4")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Auftraggeber", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Ansprechpartner")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Ort")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Postleitzahl")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Strasse")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Telefonnummer")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Auftraggebers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Kanal", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("DN")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int?>("EndSchachtId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("Entwaesserung")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<decimal>("Haltungslaenge")
|
||||
.HasColumnType("numeric");
|
||||
|
||||
b.Property<string>("Material")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Objektbezeichnung")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int?>("ProjektId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int?>("StartSchachtId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("EndSchachtId");
|
||||
|
||||
b.HasIndex("ProjektId");
|
||||
|
||||
b.HasIndex("StartSchachtId");
|
||||
|
||||
b.ToTable("Kanaele");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Projekt", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("AuftraggeberId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("Erstelldatum")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("ExportType")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("Kodierungssystem")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("Ort")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Projektname")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Strasse")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("AuftraggeberId");
|
||||
|
||||
b.ToTable("Projekte");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Schacht", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<decimal>("DeckelHoehe")
|
||||
.HasColumnType("decimal(18,4)");
|
||||
|
||||
b.Property<int>("Entwaesserung")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<decimal>("HochWert")
|
||||
.HasColumnType("decimal(18,4)");
|
||||
|
||||
b.Property<string>("Objektbezeichnung")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int?>("ProjektId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<decimal>("RechtsWert")
|
||||
.HasColumnType("decimal(18,4)");
|
||||
|
||||
b.Property<decimal>("SohlHoehe")
|
||||
.HasColumnType("decimal(18,4)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ProjektId");
|
||||
|
||||
b.ToTable("Schaechte");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Kanal", b =>
|
||||
{
|
||||
b.HasOne("Shared.Domain.Schacht", "EndSchacht")
|
||||
.WithMany()
|
||||
.HasForeignKey("EndSchachtId");
|
||||
|
||||
b.HasOne("Shared.Domain.Projekt", null)
|
||||
.WithMany("Kanaele")
|
||||
.HasForeignKey("ProjektId");
|
||||
|
||||
b.HasOne("Shared.Domain.Schacht", "StartSchacht")
|
||||
.WithMany()
|
||||
.HasForeignKey("StartSchachtId");
|
||||
|
||||
b.Navigation("EndSchacht");
|
||||
|
||||
b.Navigation("StartSchacht");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Projekt", b =>
|
||||
{
|
||||
b.HasOne("Shared.Domain.Auftraggeber", "Auftraggeber")
|
||||
.WithMany()
|
||||
.HasForeignKey("AuftraggeberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Auftraggeber");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Schacht", b =>
|
||||
{
|
||||
b.HasOne("Shared.Domain.Projekt", null)
|
||||
.WithMany("Schaechte")
|
||||
.HasForeignKey("ProjektId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Projekt", b =>
|
||||
{
|
||||
b.Navigation("Kanaele");
|
||||
|
||||
b.Navigation("Schaechte");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace SewerStammGen.EntityFramework.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class AuftraggeberAddedToProject : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<int>(
|
||||
name: "AuftraggeberId",
|
||||
table: "Projekte",
|
||||
type: "integer",
|
||||
nullable: false,
|
||||
defaultValue: 0);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Projekte_AuftraggeberId",
|
||||
table: "Projekte",
|
||||
column: "AuftraggeberId");
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_Projekte_Auftraggebers_AuftraggeberId",
|
||||
table: "Projekte",
|
||||
column: "AuftraggeberId",
|
||||
principalTable: "Auftraggebers",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropForeignKey(
|
||||
name: "FK_Projekte_Auftraggebers_AuftraggeberId",
|
||||
table: "Projekte");
|
||||
|
||||
migrationBuilder.DropIndex(
|
||||
name: "IX_Projekte_AuftraggeberId",
|
||||
table: "Projekte");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "AuftraggeberId",
|
||||
table: "Projekte");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -112,6 +112,9 @@ namespace SewerStammGen.EntityFramework.Migrations
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("AuftraggeberId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("Erstelldatum")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
@@ -136,6 +139,8 @@ namespace SewerStammGen.EntityFramework.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("AuftraggeberId");
|
||||
|
||||
b.ToTable("Projekte");
|
||||
});
|
||||
|
||||
@@ -195,6 +200,17 @@ namespace SewerStammGen.EntityFramework.Migrations
|
||||
b.Navigation("StartSchacht");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Projekt", b =>
|
||||
{
|
||||
b.HasOne("Shared.Domain.Auftraggeber", "Auftraggeber")
|
||||
.WithMany()
|
||||
.HasForeignKey("AuftraggeberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Auftraggeber");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Shared.Domain.Schacht", b =>
|
||||
{
|
||||
b.HasOne("Shared.Domain.Projekt", null)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>();
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user