diff --git a/KanSan.Base/Interfaces/IUnitOfWork.cs b/KanSan.Base/Interfaces/IUnitOfWork.cs index 1561f5b..6ee42e2 100644 --- a/KanSan.Base/Interfaces/IUnitOfWork.cs +++ b/KanSan.Base/Interfaces/IUnitOfWork.cs @@ -15,7 +15,7 @@ namespace KanSan.Base.Interfaces IRepository SchaedenRepository { get; } IRepository SanierungskonzeptRepository { get; } IRepository TaetigkeitenRepository { get; } - IRepository LeistungsverzeichnisRepository { get; } + IRepository LeistungsverzeichnisRepository { get; } IRepository FahrzeugRepository { get; } void Commit(); } diff --git a/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisBaustelleViewModel.cs b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisBaustelleViewModel.cs new file mode 100644 index 0000000..4c5d123 --- /dev/null +++ b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisBaustelleViewModel.cs @@ -0,0 +1,13 @@ +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Interfaces.UI +{ + public interface ILeistungsverzeichnisBaustelleViewModel + { + public List Baustellen { get; } + public List LeistungsverzeichnisPositionen { get; } + } +} diff --git a/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionListViewModel.cs b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionListViewModel.cs new file mode 100644 index 0000000..cad9a2b --- /dev/null +++ b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionListViewModel.cs @@ -0,0 +1,12 @@ +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Interfaces.UI +{ + public interface ILeistungsverzeichnisPositionListViewModel + { + List LVPositionen { get; } + } +} diff --git a/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionViewModel.cs b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionViewModel.cs new file mode 100644 index 0000000..4412d16 --- /dev/null +++ b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Interfaces.UI +{ + public interface ILeistungsverzeichnisPositionViewModel + { + public string Positionsnummer { get; set; } + public string Beschreibung { get; set; } + public string Einheit { get; set; } + public string Tag { get; set; } + } +} diff --git a/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs b/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs index 56fedc4..7e9c48f 100644 --- a/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs +++ b/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs @@ -13,6 +13,6 @@ namespace KanSan.Base.Interfaces.UI bool Erledigt { get; } decimal Anzahl { get; set; } string Bemerkung { get; set; } - LeitungsverzeichnisPosition Leistungsverzeichnis { get; set; } + LeistungsverzeichnisPosition Leistungsverzeichnis { get; set; } } } diff --git a/KanSan.Base/KanSanContext.cs b/KanSan.Base/KanSanContext.cs index d3b91f5..f9bbfa6 100644 --- a/KanSan.Base/KanSanContext.cs +++ b/KanSan.Base/KanSanContext.cs @@ -13,7 +13,8 @@ namespace KanSan.Base public DbSet Schaeden { get; set; } public DbSet Sanierungskonzept { get; set; } public DbSet Taetigkeiten { get; set; } - public DbSet LeitungsverzeichnisPositionen { get; set; } + public DbSet LeistungsverzeichnisPositionen { get; set; } + public DbSet LeistungsverzeichnisBaustellen { get; set; } public DbSet Fahrzeuge { get; set; } public DbSet KurzlinerSanierung { get; set; } public DbSet HutprofilSanierung { get; set; } diff --git a/KanSan.Base/Migrations/20200411095516_LeistungsverzeichnisUpdate.Designer.cs b/KanSan.Base/Migrations/20200411095516_LeistungsverzeichnisUpdate.Designer.cs new file mode 100644 index 0000000..92b0efb --- /dev/null +++ b/KanSan.Base/Migrations/20200411095516_LeistungsverzeichnisUpdate.Designer.cs @@ -0,0 +1,598 @@ +// +using System; +using KanSan.Base; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace KanSan.Base.Migrations +{ + [DbContext(typeof(KanSanContext))] + [Migration("20200411095516_LeistungsverzeichnisUpdate")] + partial class LeistungsverzeichnisUpdate + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + .HasAnnotation("ProductVersion", "3.1.3") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("KanSan.Base.Models.Baustelle", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleNummer") + .HasColumnType("text"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("OrtTeil") + .HasColumnType("text"); + + b.Property("ProjektID") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("ProjektID"); + + b.ToTable("Baustelle"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Fahrzeug", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Kennzeichen") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Fahrzeuge"); + }); + + modelBuilder.Entity("KanSan.Base.Models.GueteschutzProtokoll", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("AussenTemp") + .HasColumnType("integer"); + + b.Property("Bericht") + .HasColumnType("boolean"); + + b.Property("Dichtheit") + .HasColumnType("boolean"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("text"); + + b.Property("Film") + .HasColumnType("boolean"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("KanalTemp") + .HasColumnType("integer"); + + b.Property("SchadPositionID") + .HasColumnType("integer"); + + b.Property("Sichtkontrolle") + .HasColumnType("boolean"); + + b.Property("Video") + .HasColumnType("boolean"); + + b.Property("Wetter") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("SchadPositionID"); + + b.ToTable("GueteschutzProtokoll"); + + b.HasDiscriminator("Discriminator").HasValue("GueteschutzProtokoll"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Kunde", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Nachname") + .HasColumnType("text"); + + b.Property("Ort") + .HasColumnType("text"); + + b.Property("PLZ") + .HasColumnType("text"); + + b.Property("Strasse") + .HasColumnType("text"); + + b.Property("Vorname") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Kunden"); + }); + + modelBuilder.Entity("KanSan.Base.Models.LeistungsverzeichnisPosition", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Beschreibung") + .HasColumnType("text"); + + b.Property("Einheit") + .HasColumnType("text"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Positionsnummer") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("LeistungsverzeichnisPositionen"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Projekt", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("KundeID") + .HasColumnType("integer"); + + b.Property("Ort") + .HasColumnType("text"); + + b.Property("Projektnummer") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.HasIndex("KundeID"); + + b.ToTable("Projekte"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sanierungskonzept", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("SanierungsTyp") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.ToTable("Sanierungskonzept"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Schaeden", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Entfernung") + .HasColumnType("numeric"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Infiltration") + .HasColumnType("boolean"); + + b.Property("RissBruchScherbe") + .HasColumnType("boolean"); + + b.Property("SanierungsTyp") + .HasColumnType("integer"); + + b.Property("SanierungskonzeptID") + .HasColumnType("integer"); + + b.Property("SchadstelleFaekalienFrei") + .HasColumnType("boolean"); + + b.Property("SewerID") + .HasColumnType("integer"); + + b.Property("StutzenEinragend") + .HasColumnType("boolean"); + + b.Property("VorbehandeltFraeser") + .HasColumnType("boolean"); + + b.Property("VorbehandeltHD") + .HasColumnType("boolean"); + + b.Property("VorbehandeltMech") + .HasColumnType("boolean"); + + b.Property("WurzelInkrustationAblagerungen") + .HasColumnType("boolean"); + + b.HasKey("ID"); + + b.HasIndex("SanierungskonzeptID"); + + b.HasIndex("SewerID"); + + b.ToTable("Schaeden"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sewer", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleID") + .HasColumnType("integer"); + + b.Property("BaustellensicherungErforderlich") + .HasColumnType("boolean"); + + b.Property("DN") + .HasColumnType("integer"); + + b.Property("GenehmigungErforderlich") + .HasColumnType("boolean"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("HaltungGespuelt") + .HasColumnType("boolean"); + + b.Property("Haltungslaenge") + .HasColumnType("numeric"); + + b.Property("Material") + .HasColumnType("integer"); + + b.Property("ObjektNummer") + .HasColumnType("text"); + + b.Property("PunktObenID") + .HasColumnType("integer"); + + b.Property("PunktTypeOben") + .HasColumnType("integer"); + + b.Property("PunktTypeUnten") + .HasColumnType("integer"); + + b.Property("PunktUntenID") + .HasColumnType("integer"); + + b.Property("RohrleitungInBetrieb") + .HasColumnType("boolean"); + + b.Property("SewerType") + .HasColumnType("integer"); + + b.Property("StrasseName") + .HasColumnType("text"); + + b.Property("WasserHaltungDurchgefuehrt") + .HasColumnType("boolean"); + + b.HasKey("ID"); + + b.HasIndex("BaustelleID"); + + b.HasIndex("PunktObenID"); + + b.HasIndex("PunktUntenID"); + + b.ToTable("Kanaele"); + }); + + modelBuilder.Entity("KanSan.Base.Models.SewerPoint", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Objektnummer") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("SewerPoints"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Taetigkeiten", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Anzahl") + .HasColumnType("numeric"); + + b.Property("Bemerkung") + .HasColumnType("text"); + + b.Property("FahrzeugID") + .HasColumnType("integer"); + + b.Property("GueteschutzProtokolID") + .HasColumnType("integer"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("LeitungsverzeichnisPositionID") + .HasColumnType("integer"); + + b.Property("Mitarbeiter") + .HasColumnType("text"); + + b.Property("SanierungskonzeptID") + .HasColumnType("integer"); + + b.Property("ZeitStempel") + .HasColumnType("timestamp without time zone"); + + b.HasKey("ID"); + + b.HasIndex("FahrzeugID"); + + b.HasIndex("GueteschutzProtokolID"); + + b.HasIndex("LeitungsverzeichnisPositionID"); + + b.HasIndex("SanierungskonzeptID"); + + b.ToTable("Taetigkeiten"); + }); + + modelBuilder.Entity("KanSan.Base.Models.HutprofilSan", b => + { + b.HasBaseType("KanSan.Base.Models.GueteschutzProtokoll"); + + b.Property("AnpressenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("Auffaelligkeit") + .HasColumnType("boolean"); + + b.Property("EntlueftenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("FixierungAufPacker") + .HasColumnType("boolean"); + + b.Property("Flaechengewicht") + .HasColumnType("integer"); + + b.Property("HarzMaterialArt") + .HasColumnType("text"); + + b.Property("HarzmaterialHersteller") + .HasColumnType("text"); + + b.Property("InnenBeschichtung") + .HasColumnType("boolean"); + + b.Property("KompACharge") + .HasColumnType("text"); + + b.Property("KompBCharge") + .HasColumnType("text"); + + b.Property("MischZeit") + .HasColumnType("timestamp without time zone"); + + b.Property("PackerDruckAnfang") + .HasColumnType("double precision"); + + b.Property("PackerDruckEnde") + .HasColumnType("double precision"); + + b.Property("RohrDN") + .HasColumnType("text"); + + b.Property("SeitenKanalDruckAnfang") + .HasColumnType("double precision"); + + b.Property("SeitenKanalDruckEnde") + .HasColumnType("double precision"); + + b.Property("TraegerCharge") + .HasColumnType("text"); + + b.Property("TraegerHersteller") + .HasColumnType("text"); + + b.Property("TraegerKurzliner") + .HasColumnType("text"); + + b.Property("Winkel") + .HasColumnType("text"); + + b.HasDiscriminator().HasValue("HutprofilSan"); + }); + + modelBuilder.Entity("KanSan.Base.Models.KurzlinerSan", b => + { + b.HasBaseType("KanSan.Base.Models.GueteschutzProtokoll"); + + b.Property("AnpressenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("Auffaelligkeit") + .HasColumnType("boolean"); + + b.Property("Breit") + .HasColumnType("double precision"); + + b.Property("EntlueftenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("FixierungAufPacker") + .HasColumnType("boolean"); + + b.Property("Flaechengewicht") + .HasColumnType("integer"); + + b.Property("HarzMaterialArt") + .HasColumnType("text"); + + b.Property("HarzmaterialHersteller") + .HasColumnType("text"); + + b.Property("KompACharge") + .HasColumnType("text"); + + b.Property("KompBCharge") + .HasColumnType("text"); + + b.Property("Lang") + .HasColumnType("double precision"); + + b.Property("MischZeit") + .HasColumnType("timestamp without time zone"); + + b.Property("PackerDruckAnfang") + .HasColumnType("double precision"); + + b.Property("PackerDruckEnde") + .HasColumnType("double precision"); + + b.Property("TraegerCharge") + .HasColumnType("text"); + + b.Property("TraegerHersteller") + .HasColumnType("text"); + + b.Property("TraegerKurzliner") + .HasColumnType("text"); + + b.HasDiscriminator().HasValue("KurzlinerSan"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Baustelle", b => + { + b.HasOne("KanSan.Base.Models.Projekt", "Projekt") + .WithMany() + .HasForeignKey("ProjektID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.GueteschutzProtokoll", b => + { + b.HasOne("KanSan.Base.Models.Schaeden", "SchadPosition") + .WithMany() + .HasForeignKey("SchadPositionID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Projekt", b => + { + b.HasOne("KanSan.Base.Models.Kunde", "Kunde") + .WithMany("Baustellen") + .HasForeignKey("KundeID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Schaeden", b => + { + b.HasOne("KanSan.Base.Models.Sanierungskonzept", "Sanierungskonzept") + .WithMany() + .HasForeignKey("SanierungskonzeptID"); + + b.HasOne("KanSan.Base.Models.Sewer", "Sewer") + .WithMany("Schaeden") + .HasForeignKey("SewerID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sewer", b => + { + b.HasOne("KanSan.Base.Models.Baustelle", "Baustelle") + .WithMany("Kanaele") + .HasForeignKey("BaustelleID"); + + b.HasOne("KanSan.Base.Models.SewerPoint", "PunktOben") + .WithMany() + .HasForeignKey("PunktObenID"); + + b.HasOne("KanSan.Base.Models.SewerPoint", "PunktUnten") + .WithMany() + .HasForeignKey("PunktUntenID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Taetigkeiten", b => + { + b.HasOne("KanSan.Base.Models.Fahrzeug", "Fahrzeug") + .WithMany() + .HasForeignKey("FahrzeugID"); + + b.HasOne("KanSan.Base.Models.GueteschutzProtokoll", "GueteschutzProtokol") + .WithMany() + .HasForeignKey("GueteschutzProtokolID"); + + b.HasOne("KanSan.Base.Models.LeistungsverzeichnisPosition", "LeitungsverzeichnisPosition") + .WithMany() + .HasForeignKey("LeitungsverzeichnisPositionID"); + + b.HasOne("KanSan.Base.Models.Sanierungskonzept", "Sanierungskonzept") + .WithMany("Taetigkeiten") + .HasForeignKey("SanierungskonzeptID"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/KanSan.Base/Migrations/20200411095516_LeistungsverzeichnisUpdate.cs b/KanSan.Base/Migrations/20200411095516_LeistungsverzeichnisUpdate.cs new file mode 100644 index 0000000..823fe3d --- /dev/null +++ b/KanSan.Base/Migrations/20200411095516_LeistungsverzeichnisUpdate.cs @@ -0,0 +1,77 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace KanSan.Base.Migrations +{ + public partial class LeistungsverzeichnisUpdate : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Taetigkeiten_LeitungsverzeichnisPositionen_Leitungsverzeich~", + table: "Taetigkeiten"); + + migrationBuilder.DropTable( + name: "LeitungsverzeichnisPositionen"); + + migrationBuilder.CreateTable( + name: "LeistungsverzeichnisPositionen", + columns: table => new + { + ID = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + GuidNr = table.Column(nullable: false), + Positionsnummer = table.Column(nullable: true), + Beschreibung = table.Column(nullable: true), + Einheit = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_LeistungsverzeichnisPositionen", x => x.ID); + }); + + migrationBuilder.AddForeignKey( + name: "FK_Taetigkeiten_LeistungsverzeichnisPositionen_Leitungsverzeic~", + table: "Taetigkeiten", + column: "LeitungsverzeichnisPositionID", + principalTable: "LeistungsverzeichnisPositionen", + principalColumn: "ID", + onDelete: ReferentialAction.Restrict); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Taetigkeiten_LeistungsverzeichnisPositionen_Leitungsverzeic~", + table: "Taetigkeiten"); + + migrationBuilder.DropTable( + name: "LeistungsverzeichnisPositionen"); + + migrationBuilder.CreateTable( + name: "LeitungsverzeichnisPositionen", + columns: table => new + { + ID = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Beschreibung = table.Column(type: "text", nullable: true), + Einheit = table.Column(type: "text", nullable: true), + GuidNr = table.Column(type: "uuid", nullable: false), + Positionsnummer = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_LeitungsverzeichnisPositionen", x => x.ID); + }); + + migrationBuilder.AddForeignKey( + name: "FK_Taetigkeiten_LeitungsverzeichnisPositionen_Leitungsverzeich~", + table: "Taetigkeiten", + column: "LeitungsverzeichnisPositionID", + principalTable: "LeitungsverzeichnisPositionen", + principalColumn: "ID", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/KanSan.Base/Migrations/20200411101149_LeistungsverzeichnisTag.Designer.cs b/KanSan.Base/Migrations/20200411101149_LeistungsverzeichnisTag.Designer.cs new file mode 100644 index 0000000..92ddfad --- /dev/null +++ b/KanSan.Base/Migrations/20200411101149_LeistungsverzeichnisTag.Designer.cs @@ -0,0 +1,601 @@ +// +using System; +using KanSan.Base; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace KanSan.Base.Migrations +{ + [DbContext(typeof(KanSanContext))] + [Migration("20200411101149_LeistungsverzeichnisTag")] + partial class LeistungsverzeichnisTag + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + .HasAnnotation("ProductVersion", "3.1.3") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("KanSan.Base.Models.Baustelle", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleNummer") + .HasColumnType("text"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("OrtTeil") + .HasColumnType("text"); + + b.Property("ProjektID") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("ProjektID"); + + b.ToTable("Baustelle"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Fahrzeug", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Kennzeichen") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Fahrzeuge"); + }); + + modelBuilder.Entity("KanSan.Base.Models.GueteschutzProtokoll", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("AussenTemp") + .HasColumnType("integer"); + + b.Property("Bericht") + .HasColumnType("boolean"); + + b.Property("Dichtheit") + .HasColumnType("boolean"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("text"); + + b.Property("Film") + .HasColumnType("boolean"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("KanalTemp") + .HasColumnType("integer"); + + b.Property("SchadPositionID") + .HasColumnType("integer"); + + b.Property("Sichtkontrolle") + .HasColumnType("boolean"); + + b.Property("Video") + .HasColumnType("boolean"); + + b.Property("Wetter") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("SchadPositionID"); + + b.ToTable("GueteschutzProtokoll"); + + b.HasDiscriminator("Discriminator").HasValue("GueteschutzProtokoll"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Kunde", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Nachname") + .HasColumnType("text"); + + b.Property("Ort") + .HasColumnType("text"); + + b.Property("PLZ") + .HasColumnType("text"); + + b.Property("Strasse") + .HasColumnType("text"); + + b.Property("Vorname") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Kunden"); + }); + + modelBuilder.Entity("KanSan.Base.Models.LeistungsverzeichnisPosition", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Beschreibung") + .HasColumnType("text"); + + b.Property("Einheit") + .HasColumnType("text"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Positionsnummer") + .HasColumnType("text"); + + b.Property("Tag") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("LeistungsverzeichnisPositionen"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Projekt", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("KundeID") + .HasColumnType("integer"); + + b.Property("Ort") + .HasColumnType("text"); + + b.Property("Projektnummer") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.HasIndex("KundeID"); + + b.ToTable("Projekte"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sanierungskonzept", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("SanierungsTyp") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.ToTable("Sanierungskonzept"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Schaeden", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Entfernung") + .HasColumnType("numeric"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Infiltration") + .HasColumnType("boolean"); + + b.Property("RissBruchScherbe") + .HasColumnType("boolean"); + + b.Property("SanierungsTyp") + .HasColumnType("integer"); + + b.Property("SanierungskonzeptID") + .HasColumnType("integer"); + + b.Property("SchadstelleFaekalienFrei") + .HasColumnType("boolean"); + + b.Property("SewerID") + .HasColumnType("integer"); + + b.Property("StutzenEinragend") + .HasColumnType("boolean"); + + b.Property("VorbehandeltFraeser") + .HasColumnType("boolean"); + + b.Property("VorbehandeltHD") + .HasColumnType("boolean"); + + b.Property("VorbehandeltMech") + .HasColumnType("boolean"); + + b.Property("WurzelInkrustationAblagerungen") + .HasColumnType("boolean"); + + b.HasKey("ID"); + + b.HasIndex("SanierungskonzeptID"); + + b.HasIndex("SewerID"); + + b.ToTable("Schaeden"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sewer", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleID") + .HasColumnType("integer"); + + b.Property("BaustellensicherungErforderlich") + .HasColumnType("boolean"); + + b.Property("DN") + .HasColumnType("integer"); + + b.Property("GenehmigungErforderlich") + .HasColumnType("boolean"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("HaltungGespuelt") + .HasColumnType("boolean"); + + b.Property("Haltungslaenge") + .HasColumnType("numeric"); + + b.Property("Material") + .HasColumnType("integer"); + + b.Property("ObjektNummer") + .HasColumnType("text"); + + b.Property("PunktObenID") + .HasColumnType("integer"); + + b.Property("PunktTypeOben") + .HasColumnType("integer"); + + b.Property("PunktTypeUnten") + .HasColumnType("integer"); + + b.Property("PunktUntenID") + .HasColumnType("integer"); + + b.Property("RohrleitungInBetrieb") + .HasColumnType("boolean"); + + b.Property("SewerType") + .HasColumnType("integer"); + + b.Property("StrasseName") + .HasColumnType("text"); + + b.Property("WasserHaltungDurchgefuehrt") + .HasColumnType("boolean"); + + b.HasKey("ID"); + + b.HasIndex("BaustelleID"); + + b.HasIndex("PunktObenID"); + + b.HasIndex("PunktUntenID"); + + b.ToTable("Kanaele"); + }); + + modelBuilder.Entity("KanSan.Base.Models.SewerPoint", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Objektnummer") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("SewerPoints"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Taetigkeiten", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Anzahl") + .HasColumnType("numeric"); + + b.Property("Bemerkung") + .HasColumnType("text"); + + b.Property("FahrzeugID") + .HasColumnType("integer"); + + b.Property("GueteschutzProtokolID") + .HasColumnType("integer"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("LeitungsverzeichnisPositionID") + .HasColumnType("integer"); + + b.Property("Mitarbeiter") + .HasColumnType("text"); + + b.Property("SanierungskonzeptID") + .HasColumnType("integer"); + + b.Property("ZeitStempel") + .HasColumnType("timestamp without time zone"); + + b.HasKey("ID"); + + b.HasIndex("FahrzeugID"); + + b.HasIndex("GueteschutzProtokolID"); + + b.HasIndex("LeitungsverzeichnisPositionID"); + + b.HasIndex("SanierungskonzeptID"); + + b.ToTable("Taetigkeiten"); + }); + + modelBuilder.Entity("KanSan.Base.Models.HutprofilSan", b => + { + b.HasBaseType("KanSan.Base.Models.GueteschutzProtokoll"); + + b.Property("AnpressenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("Auffaelligkeit") + .HasColumnType("boolean"); + + b.Property("EntlueftenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("FixierungAufPacker") + .HasColumnType("boolean"); + + b.Property("Flaechengewicht") + .HasColumnType("integer"); + + b.Property("HarzMaterialArt") + .HasColumnType("text"); + + b.Property("HarzmaterialHersteller") + .HasColumnType("text"); + + b.Property("InnenBeschichtung") + .HasColumnType("boolean"); + + b.Property("KompACharge") + .HasColumnType("text"); + + b.Property("KompBCharge") + .HasColumnType("text"); + + b.Property("MischZeit") + .HasColumnType("timestamp without time zone"); + + b.Property("PackerDruckAnfang") + .HasColumnType("double precision"); + + b.Property("PackerDruckEnde") + .HasColumnType("double precision"); + + b.Property("RohrDN") + .HasColumnType("text"); + + b.Property("SeitenKanalDruckAnfang") + .HasColumnType("double precision"); + + b.Property("SeitenKanalDruckEnde") + .HasColumnType("double precision"); + + b.Property("TraegerCharge") + .HasColumnType("text"); + + b.Property("TraegerHersteller") + .HasColumnType("text"); + + b.Property("TraegerKurzliner") + .HasColumnType("text"); + + b.Property("Winkel") + .HasColumnType("text"); + + b.HasDiscriminator().HasValue("HutprofilSan"); + }); + + modelBuilder.Entity("KanSan.Base.Models.KurzlinerSan", b => + { + b.HasBaseType("KanSan.Base.Models.GueteschutzProtokoll"); + + b.Property("AnpressenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("Auffaelligkeit") + .HasColumnType("boolean"); + + b.Property("Breit") + .HasColumnType("double precision"); + + b.Property("EntlueftenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("FixierungAufPacker") + .HasColumnType("boolean"); + + b.Property("Flaechengewicht") + .HasColumnType("integer"); + + b.Property("HarzMaterialArt") + .HasColumnType("text"); + + b.Property("HarzmaterialHersteller") + .HasColumnType("text"); + + b.Property("KompACharge") + .HasColumnType("text"); + + b.Property("KompBCharge") + .HasColumnType("text"); + + b.Property("Lang") + .HasColumnType("double precision"); + + b.Property("MischZeit") + .HasColumnType("timestamp without time zone"); + + b.Property("PackerDruckAnfang") + .HasColumnType("double precision"); + + b.Property("PackerDruckEnde") + .HasColumnType("double precision"); + + b.Property("TraegerCharge") + .HasColumnType("text"); + + b.Property("TraegerHersteller") + .HasColumnType("text"); + + b.Property("TraegerKurzliner") + .HasColumnType("text"); + + b.HasDiscriminator().HasValue("KurzlinerSan"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Baustelle", b => + { + b.HasOne("KanSan.Base.Models.Projekt", "Projekt") + .WithMany() + .HasForeignKey("ProjektID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.GueteschutzProtokoll", b => + { + b.HasOne("KanSan.Base.Models.Schaeden", "SchadPosition") + .WithMany() + .HasForeignKey("SchadPositionID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Projekt", b => + { + b.HasOne("KanSan.Base.Models.Kunde", "Kunde") + .WithMany("Baustellen") + .HasForeignKey("KundeID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Schaeden", b => + { + b.HasOne("KanSan.Base.Models.Sanierungskonzept", "Sanierungskonzept") + .WithMany() + .HasForeignKey("SanierungskonzeptID"); + + b.HasOne("KanSan.Base.Models.Sewer", "Sewer") + .WithMany("Schaeden") + .HasForeignKey("SewerID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sewer", b => + { + b.HasOne("KanSan.Base.Models.Baustelle", "Baustelle") + .WithMany("Kanaele") + .HasForeignKey("BaustelleID"); + + b.HasOne("KanSan.Base.Models.SewerPoint", "PunktOben") + .WithMany() + .HasForeignKey("PunktObenID"); + + b.HasOne("KanSan.Base.Models.SewerPoint", "PunktUnten") + .WithMany() + .HasForeignKey("PunktUntenID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Taetigkeiten", b => + { + b.HasOne("KanSan.Base.Models.Fahrzeug", "Fahrzeug") + .WithMany() + .HasForeignKey("FahrzeugID"); + + b.HasOne("KanSan.Base.Models.GueteschutzProtokoll", "GueteschutzProtokol") + .WithMany() + .HasForeignKey("GueteschutzProtokolID"); + + b.HasOne("KanSan.Base.Models.LeistungsverzeichnisPosition", "LeitungsverzeichnisPosition") + .WithMany() + .HasForeignKey("LeitungsverzeichnisPositionID"); + + b.HasOne("KanSan.Base.Models.Sanierungskonzept", "Sanierungskonzept") + .WithMany("Taetigkeiten") + .HasForeignKey("SanierungskonzeptID"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/KanSan.Base/Migrations/20200411101149_LeistungsverzeichnisTag.cs b/KanSan.Base/Migrations/20200411101149_LeistungsverzeichnisTag.cs new file mode 100644 index 0000000..1d9bb7c --- /dev/null +++ b/KanSan.Base/Migrations/20200411101149_LeistungsverzeichnisTag.cs @@ -0,0 +1,22 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace KanSan.Base.Migrations +{ + public partial class LeistungsverzeichnisTag : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Tag", + table: "LeistungsverzeichnisPositionen", + nullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Tag", + table: "LeistungsverzeichnisPositionen"); + } + } +} diff --git a/KanSan.Base/Migrations/20200411101442_LeistungsverzeichnisReferenz.Designer.cs b/KanSan.Base/Migrations/20200411101442_LeistungsverzeichnisReferenz.Designer.cs new file mode 100644 index 0000000..8a1e380 --- /dev/null +++ b/KanSan.Base/Migrations/20200411101442_LeistungsverzeichnisReferenz.Designer.cs @@ -0,0 +1,637 @@ +// +using System; +using KanSan.Base; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace KanSan.Base.Migrations +{ + [DbContext(typeof(KanSanContext))] + [Migration("20200411101442_LeistungsverzeichnisReferenz")] + partial class LeistungsverzeichnisReferenz + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + .HasAnnotation("ProductVersion", "3.1.3") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("KanSan.Base.Models.Baustelle", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleNummer") + .HasColumnType("text"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("OrtTeil") + .HasColumnType("text"); + + b.Property("ProjektID") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("ProjektID"); + + b.ToTable("Baustelle"); + }); + + modelBuilder.Entity("KanSan.Base.Models.BaustelleLeistungsverzeichnisReferenz", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleID") + .HasColumnType("integer"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("LVPositionID") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("BaustelleID"); + + b.HasIndex("LVPositionID"); + + b.ToTable("LeistungsverzeichnisBaustellen"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Fahrzeug", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Kennzeichen") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Fahrzeuge"); + }); + + modelBuilder.Entity("KanSan.Base.Models.GueteschutzProtokoll", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("AussenTemp") + .HasColumnType("integer"); + + b.Property("Bericht") + .HasColumnType("boolean"); + + b.Property("Dichtheit") + .HasColumnType("boolean"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("text"); + + b.Property("Film") + .HasColumnType("boolean"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("KanalTemp") + .HasColumnType("integer"); + + b.Property("SchadPositionID") + .HasColumnType("integer"); + + b.Property("Sichtkontrolle") + .HasColumnType("boolean"); + + b.Property("Video") + .HasColumnType("boolean"); + + b.Property("Wetter") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("SchadPositionID"); + + b.ToTable("GueteschutzProtokoll"); + + b.HasDiscriminator("Discriminator").HasValue("GueteschutzProtokoll"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Kunde", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Nachname") + .HasColumnType("text"); + + b.Property("Ort") + .HasColumnType("text"); + + b.Property("PLZ") + .HasColumnType("text"); + + b.Property("Strasse") + .HasColumnType("text"); + + b.Property("Vorname") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Kunden"); + }); + + modelBuilder.Entity("KanSan.Base.Models.LeistungsverzeichnisPosition", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Beschreibung") + .HasColumnType("text"); + + b.Property("Einheit") + .HasColumnType("text"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Positionsnummer") + .HasColumnType("text"); + + b.Property("Tag") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("LeistungsverzeichnisPositionen"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Projekt", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("KundeID") + .HasColumnType("integer"); + + b.Property("Ort") + .HasColumnType("text"); + + b.Property("Projektnummer") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.HasIndex("KundeID"); + + b.ToTable("Projekte"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sanierungskonzept", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("SanierungsTyp") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.ToTable("Sanierungskonzept"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Schaeden", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Entfernung") + .HasColumnType("numeric"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Infiltration") + .HasColumnType("boolean"); + + b.Property("RissBruchScherbe") + .HasColumnType("boolean"); + + b.Property("SanierungsTyp") + .HasColumnType("integer"); + + b.Property("SanierungskonzeptID") + .HasColumnType("integer"); + + b.Property("SchadstelleFaekalienFrei") + .HasColumnType("boolean"); + + b.Property("SewerID") + .HasColumnType("integer"); + + b.Property("StutzenEinragend") + .HasColumnType("boolean"); + + b.Property("VorbehandeltFraeser") + .HasColumnType("boolean"); + + b.Property("VorbehandeltHD") + .HasColumnType("boolean"); + + b.Property("VorbehandeltMech") + .HasColumnType("boolean"); + + b.Property("WurzelInkrustationAblagerungen") + .HasColumnType("boolean"); + + b.HasKey("ID"); + + b.HasIndex("SanierungskonzeptID"); + + b.HasIndex("SewerID"); + + b.ToTable("Schaeden"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sewer", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleID") + .HasColumnType("integer"); + + b.Property("BaustellensicherungErforderlich") + .HasColumnType("boolean"); + + b.Property("DN") + .HasColumnType("integer"); + + b.Property("GenehmigungErforderlich") + .HasColumnType("boolean"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("HaltungGespuelt") + .HasColumnType("boolean"); + + b.Property("Haltungslaenge") + .HasColumnType("numeric"); + + b.Property("Material") + .HasColumnType("integer"); + + b.Property("ObjektNummer") + .HasColumnType("text"); + + b.Property("PunktObenID") + .HasColumnType("integer"); + + b.Property("PunktTypeOben") + .HasColumnType("integer"); + + b.Property("PunktTypeUnten") + .HasColumnType("integer"); + + b.Property("PunktUntenID") + .HasColumnType("integer"); + + b.Property("RohrleitungInBetrieb") + .HasColumnType("boolean"); + + b.Property("SewerType") + .HasColumnType("integer"); + + b.Property("StrasseName") + .HasColumnType("text"); + + b.Property("WasserHaltungDurchgefuehrt") + .HasColumnType("boolean"); + + b.HasKey("ID"); + + b.HasIndex("BaustelleID"); + + b.HasIndex("PunktObenID"); + + b.HasIndex("PunktUntenID"); + + b.ToTable("Kanaele"); + }); + + modelBuilder.Entity("KanSan.Base.Models.SewerPoint", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("Objektnummer") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("SewerPoints"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Taetigkeiten", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Anzahl") + .HasColumnType("numeric"); + + b.Property("Bemerkung") + .HasColumnType("text"); + + b.Property("FahrzeugID") + .HasColumnType("integer"); + + b.Property("GueteschutzProtokolID") + .HasColumnType("integer"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("LeitungsverzeichnisPositionID") + .HasColumnType("integer"); + + b.Property("Mitarbeiter") + .HasColumnType("text"); + + b.Property("SanierungskonzeptID") + .HasColumnType("integer"); + + b.Property("ZeitStempel") + .HasColumnType("timestamp without time zone"); + + b.HasKey("ID"); + + b.HasIndex("FahrzeugID"); + + b.HasIndex("GueteschutzProtokolID"); + + b.HasIndex("LeitungsverzeichnisPositionID"); + + b.HasIndex("SanierungskonzeptID"); + + b.ToTable("Taetigkeiten"); + }); + + modelBuilder.Entity("KanSan.Base.Models.HutprofilSan", b => + { + b.HasBaseType("KanSan.Base.Models.GueteschutzProtokoll"); + + b.Property("AnpressenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("Auffaelligkeit") + .HasColumnType("boolean"); + + b.Property("EntlueftenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("FixierungAufPacker") + .HasColumnType("boolean"); + + b.Property("Flaechengewicht") + .HasColumnType("integer"); + + b.Property("HarzMaterialArt") + .HasColumnType("text"); + + b.Property("HarzmaterialHersteller") + .HasColumnType("text"); + + b.Property("InnenBeschichtung") + .HasColumnType("boolean"); + + b.Property("KompACharge") + .HasColumnType("text"); + + b.Property("KompBCharge") + .HasColumnType("text"); + + b.Property("MischZeit") + .HasColumnType("timestamp without time zone"); + + b.Property("PackerDruckAnfang") + .HasColumnType("double precision"); + + b.Property("PackerDruckEnde") + .HasColumnType("double precision"); + + b.Property("RohrDN") + .HasColumnType("text"); + + b.Property("SeitenKanalDruckAnfang") + .HasColumnType("double precision"); + + b.Property("SeitenKanalDruckEnde") + .HasColumnType("double precision"); + + b.Property("TraegerCharge") + .HasColumnType("text"); + + b.Property("TraegerHersteller") + .HasColumnType("text"); + + b.Property("TraegerKurzliner") + .HasColumnType("text"); + + b.Property("Winkel") + .HasColumnType("text"); + + b.HasDiscriminator().HasValue("HutprofilSan"); + }); + + modelBuilder.Entity("KanSan.Base.Models.KurzlinerSan", b => + { + b.HasBaseType("KanSan.Base.Models.GueteschutzProtokoll"); + + b.Property("AnpressenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("Auffaelligkeit") + .HasColumnType("boolean"); + + b.Property("Breit") + .HasColumnType("double precision"); + + b.Property("EntlueftenPacker") + .HasColumnType("timestamp without time zone"); + + b.Property("FixierungAufPacker") + .HasColumnType("boolean"); + + b.Property("Flaechengewicht") + .HasColumnType("integer"); + + b.Property("HarzMaterialArt") + .HasColumnType("text"); + + b.Property("HarzmaterialHersteller") + .HasColumnType("text"); + + b.Property("KompACharge") + .HasColumnType("text"); + + b.Property("KompBCharge") + .HasColumnType("text"); + + b.Property("Lang") + .HasColumnType("double precision"); + + b.Property("MischZeit") + .HasColumnType("timestamp without time zone"); + + b.Property("PackerDruckAnfang") + .HasColumnType("double precision"); + + b.Property("PackerDruckEnde") + .HasColumnType("double precision"); + + b.Property("TraegerCharge") + .HasColumnType("text"); + + b.Property("TraegerHersteller") + .HasColumnType("text"); + + b.Property("TraegerKurzliner") + .HasColumnType("text"); + + b.HasDiscriminator().HasValue("KurzlinerSan"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Baustelle", b => + { + b.HasOne("KanSan.Base.Models.Projekt", "Projekt") + .WithMany() + .HasForeignKey("ProjektID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.BaustelleLeistungsverzeichnisReferenz", b => + { + b.HasOne("KanSan.Base.Models.Baustelle", "Baustelle") + .WithMany() + .HasForeignKey("BaustelleID"); + + b.HasOne("KanSan.Base.Models.LeistungsverzeichnisPosition", "LVPosition") + .WithMany() + .HasForeignKey("LVPositionID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.GueteschutzProtokoll", b => + { + b.HasOne("KanSan.Base.Models.Schaeden", "SchadPosition") + .WithMany() + .HasForeignKey("SchadPositionID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Projekt", b => + { + b.HasOne("KanSan.Base.Models.Kunde", "Kunde") + .WithMany("Baustellen") + .HasForeignKey("KundeID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Schaeden", b => + { + b.HasOne("KanSan.Base.Models.Sanierungskonzept", "Sanierungskonzept") + .WithMany() + .HasForeignKey("SanierungskonzeptID"); + + b.HasOne("KanSan.Base.Models.Sewer", "Sewer") + .WithMany("Schaeden") + .HasForeignKey("SewerID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Sewer", b => + { + b.HasOne("KanSan.Base.Models.Baustelle", "Baustelle") + .WithMany("Kanaele") + .HasForeignKey("BaustelleID"); + + b.HasOne("KanSan.Base.Models.SewerPoint", "PunktOben") + .WithMany() + .HasForeignKey("PunktObenID"); + + b.HasOne("KanSan.Base.Models.SewerPoint", "PunktUnten") + .WithMany() + .HasForeignKey("PunktUntenID"); + }); + + modelBuilder.Entity("KanSan.Base.Models.Taetigkeiten", b => + { + b.HasOne("KanSan.Base.Models.Fahrzeug", "Fahrzeug") + .WithMany() + .HasForeignKey("FahrzeugID"); + + b.HasOne("KanSan.Base.Models.GueteschutzProtokoll", "GueteschutzProtokol") + .WithMany() + .HasForeignKey("GueteschutzProtokolID"); + + b.HasOne("KanSan.Base.Models.LeistungsverzeichnisPosition", "LeitungsverzeichnisPosition") + .WithMany() + .HasForeignKey("LeitungsverzeichnisPositionID"); + + b.HasOne("KanSan.Base.Models.Sanierungskonzept", "Sanierungskonzept") + .WithMany("Taetigkeiten") + .HasForeignKey("SanierungskonzeptID"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/KanSan.Base/Migrations/20200411101442_LeistungsverzeichnisReferenz.cs b/KanSan.Base/Migrations/20200411101442_LeistungsverzeichnisReferenz.cs new file mode 100644 index 0000000..18d6f96 --- /dev/null +++ b/KanSan.Base/Migrations/20200411101442_LeistungsverzeichnisReferenz.cs @@ -0,0 +1,55 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace KanSan.Base.Migrations +{ + public partial class LeistungsverzeichnisReferenz : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "LeistungsverzeichnisBaustellen", + columns: table => new + { + ID = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + GuidNr = table.Column(nullable: false), + BaustelleID = table.Column(nullable: true), + LVPositionID = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_LeistungsverzeichnisBaustellen", x => x.ID); + table.ForeignKey( + name: "FK_LeistungsverzeichnisBaustellen_Baustelle_BaustelleID", + column: x => x.BaustelleID, + principalTable: "Baustelle", + principalColumn: "ID", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_LeistungsverzeichnisBaustellen_LeistungsverzeichnisPosition~", + column: x => x.LVPositionID, + principalTable: "LeistungsverzeichnisPositionen", + principalColumn: "ID", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateIndex( + name: "IX_LeistungsverzeichnisBaustellen_BaustelleID", + table: "LeistungsverzeichnisBaustellen", + column: "BaustelleID"); + + migrationBuilder.CreateIndex( + name: "IX_LeistungsverzeichnisBaustellen_LVPositionID", + table: "LeistungsverzeichnisBaustellen", + column: "LVPositionID"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "LeistungsverzeichnisBaustellen"); + } + } +} diff --git a/KanSan.Base/Migrations/KanSanContextModelSnapshot.cs b/KanSan.Base/Migrations/KanSanContextModelSnapshot.cs index 8d5ffc2..1f6a242 100644 --- a/KanSan.Base/Migrations/KanSanContextModelSnapshot.cs +++ b/KanSan.Base/Migrations/KanSanContextModelSnapshot.cs @@ -45,6 +45,31 @@ namespace KanSan.Base.Migrations b.ToTable("Baustelle"); }); + modelBuilder.Entity("KanSan.Base.Models.BaustelleLeistungsverzeichnisReferenz", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BaustelleID") + .HasColumnType("integer"); + + b.Property("GuidNr") + .HasColumnType("uuid"); + + b.Property("LVPositionID") + .HasColumnType("integer"); + + b.HasKey("ID"); + + b.HasIndex("BaustelleID"); + + b.HasIndex("LVPositionID"); + + b.ToTable("LeistungsverzeichnisBaustellen"); + }); + modelBuilder.Entity("KanSan.Base.Models.Fahrzeug", b => { b.Property("ID") @@ -143,7 +168,7 @@ namespace KanSan.Base.Migrations b.ToTable("Kunden"); }); - modelBuilder.Entity("KanSan.Base.Models.LeitungsverzeichnisPosition", b => + modelBuilder.Entity("KanSan.Base.Models.LeistungsverzeichnisPosition", b => { b.Property("ID") .ValueGeneratedOnAdd() @@ -162,9 +187,12 @@ namespace KanSan.Base.Migrations b.Property("Positionsnummer") .HasColumnType("text"); + b.Property("Tag") + .HasColumnType("text"); + b.HasKey("ID"); - b.ToTable("LeitungsverzeichnisPositionen"); + b.ToTable("LeistungsverzeichnisPositionen"); }); modelBuilder.Entity("KanSan.Base.Models.Projekt", b => @@ -532,6 +560,17 @@ namespace KanSan.Base.Migrations .HasForeignKey("ProjektID"); }); + modelBuilder.Entity("KanSan.Base.Models.BaustelleLeistungsverzeichnisReferenz", b => + { + b.HasOne("KanSan.Base.Models.Baustelle", "Baustelle") + .WithMany() + .HasForeignKey("BaustelleID"); + + b.HasOne("KanSan.Base.Models.LeistungsverzeichnisPosition", "LVPosition") + .WithMany() + .HasForeignKey("LVPositionID"); + }); + modelBuilder.Entity("KanSan.Base.Models.GueteschutzProtokoll", b => { b.HasOne("KanSan.Base.Models.Schaeden", "SchadPosition") @@ -582,7 +621,7 @@ namespace KanSan.Base.Migrations .WithMany() .HasForeignKey("GueteschutzProtokolID"); - b.HasOne("KanSan.Base.Models.LeitungsverzeichnisPosition", "LeitungsverzeichnisPosition") + b.HasOne("KanSan.Base.Models.LeistungsverzeichnisPosition", "LeitungsverzeichnisPosition") .WithMany() .HasForeignKey("LeitungsverzeichnisPositionID"); diff --git a/KanSan.Base/Models/BaustelleLeistungsverzeichnisReferenz.cs b/KanSan.Base/Models/BaustelleLeistungsverzeichnisReferenz.cs new file mode 100644 index 0000000..803c341 --- /dev/null +++ b/KanSan.Base/Models/BaustelleLeistungsverzeichnisReferenz.cs @@ -0,0 +1,15 @@ +using KanSan.Base.Interfaces; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Models +{ + public class BaustelleLeistungsverzeichnisReferenz : IDatabaseEntry + { + public int ID { get; set; } + public Guid GuidNr { get; set; } + public Baustelle Baustelle { get; set; } + public LeistungsverzeichnisPosition LVPosition { get; set; } + } +} diff --git a/KanSan.Base/Models/LeitungsverzeichnisPosition.cs b/KanSan.Base/Models/LeistungsverzeichnisPosition.cs similarity index 75% rename from KanSan.Base/Models/LeitungsverzeichnisPosition.cs rename to KanSan.Base/Models/LeistungsverzeichnisPosition.cs index c1c2ee2..a992dd4 100644 --- a/KanSan.Base/Models/LeitungsverzeichnisPosition.cs +++ b/KanSan.Base/Models/LeistungsverzeichnisPosition.cs @@ -3,12 +3,13 @@ using System; namespace KanSan.Base.Models { - public class LeitungsverzeichnisPosition : IDatabaseEntry + public class LeistungsverzeichnisPosition : IDatabaseEntry { public int ID { get; set; } public Guid GuidNr { get; set; } public string Positionsnummer { get; set; } public string Beschreibung { get; set; } public string Einheit { get; set; } + public string Tag { get; set; } } } diff --git a/KanSan.Base/Models/Taetigkeiten.cs b/KanSan.Base/Models/Taetigkeiten.cs index 02ce86f..900015e 100644 --- a/KanSan.Base/Models/Taetigkeiten.cs +++ b/KanSan.Base/Models/Taetigkeiten.cs @@ -12,7 +12,7 @@ namespace KanSan.Base.Models public string Mitarbeiter { get; set; } public DateTime ZeitStempel { get; set; } //public decimal Position { get; set; } - public LeitungsverzeichnisPosition LeitungsverzeichnisPosition { get; set; } + public LeistungsverzeichnisPosition LeitungsverzeichnisPosition { get; set; } public decimal Anzahl { get; set; } public GueteschutzProtokoll GueteschutzProtokol { get; set; } public string Bemerkung { get; set; } diff --git a/KanSan.Base/UnitOfWork.cs b/KanSan.Base/UnitOfWork.cs index 8f40a97..03ac490 100644 --- a/KanSan.Base/UnitOfWork.cs +++ b/KanSan.Base/UnitOfWork.cs @@ -17,10 +17,11 @@ namespace KanSan.Base private BaseRepository _schaeden; private BaseRepository _sanierungskonzepte; private BaseRepository _taetigkeiten; - private BaseRepository _leistungsverzeichnisPositionen; + private BaseRepository _leistungsverzeichnisPositionen; private BaseRepository _fahrzeuge; private BaseRepository _kurzliner; private BaseRepository _hutprofil; + private BaseRepository _leistungsverzeichnisRef; public UnitOfWork(KanSanContext dbContext) { @@ -29,27 +30,18 @@ namespace KanSan.Base } public IRepository ProjekteRepository => _projekte ?? (_projekte = new BaseRepository(_dbContext)); - public IRepository KundenRepository => _kunden ?? (_kunden = new BaseRepository(_dbContext)); - public IRepository BaustelleRepository => _baustellen ?? (_baustellen = new BaseRepository(_dbContext)); - public IRepository KanaeleRepository => _kanaele ?? (_kanaele = new BaseRepository(_dbContext)); - public IRepository ObjekteRepository => _objekte ?? (_objekte = new BaseRepository(_dbContext)); - public IRepository SchaedenRepository => _schaeden ?? (_schaeden = new BaseRepository(_dbContext)); - public IRepository SanierungskonzeptRepository => _sanierungskonzepte ?? (_sanierungskonzepte = new BaseRepository(_dbContext)); - public IRepository TaetigkeitenRepository => _taetigkeiten ?? (_taetigkeiten = new BaseRepository(_dbContext)); - - public IRepository LeistungsverzeichnisRepository => _leistungsverzeichnisPositionen ?? (_leistungsverzeichnisPositionen = new BaseRepository(_dbContext)); - + public IRepository LeistungsverzeichnisRepository => _leistungsverzeichnisPositionen ?? (_leistungsverzeichnisPositionen = new BaseRepository(_dbContext)); public IRepository FahrzeugRepository => _fahrzeuge ?? (_fahrzeuge = new BaseRepository(_dbContext)); public IRepository KurzlinerRepository => _kurzliner ?? (_kurzliner = new BaseRepository(_dbContext)); public IRepository HutprofilRepository => _hutprofil ?? (_hutprofil = new BaseRepository(_dbContext)); - + public IRepository LeistungsverzeichnisReferenz => _leistungsverzeichnisRef ?? (_leistungsverzeichnisRef = new BaseRepository(_dbContext)); public void Commit() { _dbContext.SaveChanges(); diff --git a/KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs b/KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs index 2adadd4..24bfbbd 100644 --- a/KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs +++ b/KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs @@ -16,6 +16,11 @@ namespace KanSan.ViewModel string ortTeil; string baustelleNummer; + public Baustelle Baustelle + { + get => baustelle; + } + public string OrtTeil { get => ortTeil; diff --git a/KanSan.ViewModel/KanSan.ViewModel.csproj b/KanSan.ViewModel/KanSan.ViewModel.csproj index ce73efd..3ca9844 100644 --- a/KanSan.ViewModel/KanSan.ViewModel.csproj +++ b/KanSan.ViewModel/KanSan.ViewModel.csproj @@ -22,6 +22,10 @@ + + + + diff --git a/KanSan.ViewModel/LeistungsverzeichnisPositionenListViewModel.cs b/KanSan.ViewModel/LeistungsverzeichnisPositionenListViewModel.cs new file mode 100644 index 0000000..0ea6f8c --- /dev/null +++ b/KanSan.ViewModel/LeistungsverzeichnisPositionenListViewModel.cs @@ -0,0 +1,44 @@ +using KanSan.Base; +using KanSan.Base.Interfaces; +using KanSan.Base.Interfaces.UI; +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace KanSan.ViewModel +{ + public class LeistungsverzeichnisPositionenListViewModel : ILeistungsverzeichnisPositionListViewModel + { + IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); + List lvPositionen; + public List LVPositionen => lvPositionen; + + public LeistungsverzeichnisPositionenListViewModel(string tag) + { + if(tag == string.Empty) + { + lvPositionen = unitOfWork.LeistungsverzeichnisRepository.Get().ToList(); + } + else + { + lvPositionen = unitOfWork.LeistungsverzeichnisRepository.Get(x => x.Tag.Equals(tag)).ToList(); + if (lvPositionen == null) lvPositionen = new List(); + } + } + + public LeistungsverzeichnisPosition NeueLeistungsverzeichnisPosition() + { + Guid guid = Guid.NewGuid(); + LeistungsverzeichnisPosition leistungsverzeichnisPosition = new LeistungsverzeichnisPosition() + { + GuidNr = guid, + }; + unitOfWork.LeistungsverzeichnisRepository.Insert(leistungsverzeichnisPosition); + unitOfWork.Commit(); + return leistungsverzeichnisPosition; + } + + } +} diff --git a/KanSan.ViewModel/TaetigkeitEditViewModel.cs b/KanSan.ViewModel/TaetigkeitEditViewModel.cs index 3668351..d3a6ee6 100644 --- a/KanSan.ViewModel/TaetigkeitEditViewModel.cs +++ b/KanSan.ViewModel/TaetigkeitEditViewModel.cs @@ -18,7 +18,7 @@ namespace KanSan.ViewModel decimal anzahl; string bemerkung; Taetigkeiten model; - LeitungsverzeichnisPosition leistungsverzeichnis; + LeistungsverzeichnisPosition leistungsverzeichnis; #region getsetters public Fahrzeug Fahrzeug { @@ -71,7 +71,7 @@ namespace KanSan.ViewModel OnPropertyChanged(); } } - public LeitungsverzeichnisPosition Leistungsverzeichnis + public LeistungsverzeichnisPosition Leistungsverzeichnis { get => leistungsverzeichnis; set diff --git a/KanSan/KanSan.csproj.user b/KanSan/KanSan.csproj.user index c8887ac..f078b3c 100644 --- a/KanSan/KanSan.csproj.user +++ b/KanSan/KanSan.csproj.user @@ -7,6 +7,9 @@ + + Code + Code @@ -46,6 +49,12 @@ Code + + Code + + + Code + Code @@ -60,6 +69,9 @@ Designer + + Designer + Designer @@ -99,6 +111,12 @@ Designer + + Designer + + + Designer + Designer diff --git a/KanSan/MainWindow.xaml.cs b/KanSan/MainWindow.xaml.cs index d83c36f..ffb7cd7 100644 --- a/KanSan/MainWindow.xaml.cs +++ b/KanSan/MainWindow.xaml.cs @@ -37,7 +37,10 @@ namespace KanSan { InitializeComponent(); this.DataContext = new MainWindowViewModel(); - +#if DEBUG + System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Critical; +#endif + UCKundeList = new UI.UCKundeList(); UCKundeList.KundeAdded += UCKundeList_KundeAdded; UCKundeList.KundeSelect += UCKundeList_KundeSelect; diff --git a/KanSan/SampleData/LeistungsverzeichnisBaustelleViewModelSampleData.cs b/KanSan/SampleData/LeistungsverzeichnisBaustelleViewModelSampleData.cs new file mode 100644 index 0000000..3307460 --- /dev/null +++ b/KanSan/SampleData/LeistungsverzeichnisBaustelleViewModelSampleData.cs @@ -0,0 +1,36 @@ +using KanSan.Base.Interfaces.UI; +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.SampleData +{ + class LeistungsverzeichnisBaustelleViewModelSampleData : ILeistungsverzeichnisBaustelleViewModel + { + List baustellen = new List(); + List leistungsverzeichnisPositionen = new List(); + + public List Baustellen => baustellen; + public List LeistungsverzeichnisPositionen => leistungsverzeichnisPositionen; + + public LeistungsverzeichnisBaustelleViewModelSampleData() + { + baustellen.Add(new Baustelle() + { + BaustelleNummer = "0192", + OrtTeil = "Oldenburg", + }); + + for (int i = 0; i < 5; i++) + { + leistungsverzeichnisPositionen.Add(new LeistungsverzeichnisPosition() + { + Beschreibung = "TV x " + i, + Einheit = "M", + Positionsnummer = "1.0.3."+i + }); + } + } + } +} diff --git a/KanSan/SampleData/LeistungsverzeichnisListSampleData.cs b/KanSan/SampleData/LeistungsverzeichnisListSampleData.cs new file mode 100644 index 0000000..a13f251 --- /dev/null +++ b/KanSan/SampleData/LeistungsverzeichnisListSampleData.cs @@ -0,0 +1,28 @@ +using KanSan.Base.Interfaces.UI; +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.SampleData +{ + class LeistungsverzeichnisListSampleData : ILeistungsverzeichnisPositionListViewModel + { + List lvPositionen = new List(); + public List LVPositionen => lvPositionen; + + public LeistungsverzeichnisListSampleData() + { + for (int i = 0; i < 5; i++) + { + lvPositionen.Add(new LeistungsverzeichnisPosition() + { + Positionsnummer = i.ToString(), + Beschreibung = "Test " + i, + Einheit = "Stk " + i, + + }); + } + } + } +} diff --git a/KanSan/SampleData/LeistungsverzeichnisPositionViewModelSampleData.cs b/KanSan/SampleData/LeistungsverzeichnisPositionViewModelSampleData.cs new file mode 100644 index 0000000..5b36cc5 --- /dev/null +++ b/KanSan/SampleData/LeistungsverzeichnisPositionViewModelSampleData.cs @@ -0,0 +1,27 @@ +using KanSan.Base.Interfaces.UI; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.SampleData +{ + class LeistungsverzeichnisPositionViewModelSampleData : ILeistungsverzeichnisPositionViewModel + { + string positionnummer; + string beschreibung; + string einheit; + string tag; + public string Positionsnummer { get => positionnummer; set => throw new NotImplementedException(); } + public string Beschreibung { get => beschreibung; set => throw new NotImplementedException(); } + public string Einheit { get => einheit; set => throw new NotImplementedException(); } + public string Tag { get => tag; set => throw new NotImplementedException(); } + + public LeistungsverzeichnisPositionViewModelSampleData() + { + positionnummer = "1.2.4"; + beschreibung = "TV Inspektion DN200"; + einheit = "M"; + tag = "JMStandard"; + } + } +} diff --git a/KanSan/UI/Baustelle/UCBaustelleEdit.xaml b/KanSan/UI/Baustelle/UCBaustelleEdit.xaml index 4e519bb..ce71564 100644 --- a/KanSan/UI/Baustelle/UCBaustelleEdit.xaml +++ b/KanSan/UI/Baustelle/UCBaustelleEdit.xaml @@ -15,6 +15,7 @@ + @@ -25,7 +26,7 @@ - -