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"));
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("AuftraggeberId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
b.Property<string>("Erstelldatum")
|
b.Property<string>("Erstelldatum")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
@@ -136,6 +139,8 @@ namespace SewerStammGen.EntityFramework.Migrations
|
|||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("AuftraggeberId");
|
||||||
|
|
||||||
b.ToTable("Projekte");
|
b.ToTable("Projekte");
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -195,6 +200,17 @@ namespace SewerStammGen.EntityFramework.Migrations
|
|||||||
b.Navigation("StartSchacht");
|
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 =>
|
modelBuilder.Entity("Shared.Domain.Schacht", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Shared.Domain.Projekt", null)
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -13,7 +18,24 @@ namespace SewerStammGen.HostBuilders
|
|||||||
{
|
{
|
||||||
hostBuilder.ConfigureServices((context, services) =>
|
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;
|
return hostBuilder;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using SewerStammGen.EntityFramework.Services;
|
||||||
using SewerStammGen.WPF.Interface.Navigator;
|
using SewerStammGen.WPF.Interface.Navigator;
|
||||||
using SewerStammGen.WPF.ViewModel.State.Navigation;
|
using SewerStammGen.WPF.ViewModel.State.Navigation;
|
||||||
|
using Shared.Contracts;
|
||||||
|
using Shared.Domain;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -18,6 +21,8 @@ namespace SewerStammGen.HostBuilders
|
|||||||
host.ConfigureServices(services =>
|
host.ConfigureServices(services =>
|
||||||
{
|
{
|
||||||
services.AddSingleton<IMainWindowNavigator, MainWindowNavigator>();
|
services.AddSingleton<IMainWindowNavigator, MainWindowNavigator>();
|
||||||
|
|
||||||
|
services.AddSingleton<IDataService<Projekt>, GenericDataService<Projekt>>();
|
||||||
});
|
});
|
||||||
return host;
|
return host;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ using Microsoft.Extensions.Hosting;
|
|||||||
using SewerStammGen.WPF.Interface;
|
using SewerStammGen.WPF.Interface;
|
||||||
using SewerStammGen.WPF.ViewModel;
|
using SewerStammGen.WPF.ViewModel;
|
||||||
using SewerStammGen.WPF.ViewModel.Factories;
|
using SewerStammGen.WPF.ViewModel.Factories;
|
||||||
|
using Shared.Contracts;
|
||||||
|
using Shared.Domain;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -36,7 +38,9 @@ namespace SewerStammGen.HostBuilders
|
|||||||
|
|
||||||
services.AddSingleton<CreateViewModel<ProjektListViewModel>>(services =>
|
services.AddSingleton<CreateViewModel<ProjektListViewModel>>(services =>
|
||||||
{
|
{
|
||||||
return () => new ProjektListViewModel();
|
return () => new ProjektListViewModel(
|
||||||
|
services.GetRequiredService<IDataService<Projekt>>()
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
services.AddSingleton<IViewModelAbstractFactory, MainWindowViewModelFactory>();
|
services.AddSingleton<IViewModelAbstractFactory, MainWindowViewModelFactory>();
|
||||||
|
|||||||
@@ -17,6 +17,10 @@
|
|||||||
<PackageReference Include="Syncfusion.SfGrid.WPF" Version="20.4.0.54" />
|
<PackageReference Include="Syncfusion.SfGrid.WPF" Version="20.4.0.54" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\SewerStammGen.EntityFramework\SewerStammGen.EntityFramework.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="appsettings.json">
|
<None Update="appsettings.json">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -9,5 +13,31 @@ namespace SewerStammGen.WPF.ViewModel
|
|||||||
{
|
{
|
||||||
public class ProjektListViewModel : BaseViewModel
|
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": {
|
"ConnectionStrings": {
|
||||||
"databaseToUse": "default",
|
"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"
|
"sqlite": "Data Source=database.db"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user