diff --git a/CocktailWeb/Data/DbDataContext.cs b/CocktailWeb/Data/DbDataContext.cs index 241565c..527ac7d 100644 --- a/CocktailWeb/Data/DbDataContext.cs +++ b/CocktailWeb/Data/DbDataContext.cs @@ -35,18 +35,20 @@ namespace CocktailWeb.Data new Filler() { Id = 1, Pos = 1, Type = Filler.FillerType.Pump }, new Filler() { Id = 2, Pos = 2, Type = Filler.FillerType.Pump }, new Filler() { Id = 3, Pos = 3, Type = Filler.FillerType.Pump }, - new Filler() { Id = 4, Pos = 4, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 5, Pos = 5, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 6, Pos = 6, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 7, Pos = 7, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 8, Pos = 8, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 9, Pos = 9, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 10, Pos = 10, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 11, Pos = 11, Type = Filler.FillerType.Pourer }, - new Filler() { Id = 12, Pos = 12, Type = Filler.FillerType.Pump }, - new Filler() { Id = 13, Pos = 13, Type = Filler.FillerType.Pump }, - new Filler() { Id = 14, Pos = 14, Type = Filler.FillerType.Pump } + new Filler() { Id = 4, Pos = 1, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 5, Pos = 2, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 6, Pos = 3, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 7, Pos = 4, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 8, Pos = 5, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 9, Pos = 6, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 10, Pos = 7, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 11, Pos = 8, Type = Filler.FillerType.Pourer }, + new Filler() { Id = 12, Pos = 4, Type = Filler.FillerType.Pump }, + new Filler() { Id = 13, Pos = 5, Type = Filler.FillerType.Pump }, + new Filler() { Id = 14, Pos = 6, Type = Filler.FillerType.Pump } ); + modelBuilder.Entity().HasIndex(p => new {p.Type, p.Pos}).IsUnique(); + modelBuilder.Entity().ToTable("Glaeser"); diff --git a/CocktailWeb/Migrations/20240228183936_ModiyFillerUniquePosType.Designer.cs b/CocktailWeb/Migrations/20240228183936_ModiyFillerUniquePosType.Designer.cs new file mode 100644 index 0000000..7b9419e --- /dev/null +++ b/CocktailWeb/Migrations/20240228183936_ModiyFillerUniquePosType.Designer.cs @@ -0,0 +1,272 @@ +// +using System; +using CocktailWeb.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace CocktailWeb.Migrations +{ + [DbContext(typeof(DbDataContext))] + [Migration("20240228183936_ModiyFillerUniquePosType")] + partial class ModiyFillerUniquePosType + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "8.0.1"); + + modelBuilder.Entity("CocktailWeb.Data.Cocktail", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Counter") + .HasColumnType("INTEGER"); + + b.Property("Ersteller") + .HasColumnType("TEXT"); + + b.Property("ImageURL") + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Cocktails"); + }); + + modelBuilder.Entity("CocktailWeb.Data.CocktailFlasche", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CocktailID") + .HasColumnType("INTEGER"); + + b.Property("FlascheID") + .HasColumnType("INTEGER"); + + b.Property("Menge") + .HasColumnType("INTEGER"); + + b.Property("Reihenfolge") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("CocktailID"); + + b.HasIndex("FlascheID"); + + b.ToTable("CocktailFlaschen"); + }); + + modelBuilder.Entity("CocktailWeb.Data.Filler", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("FlascheId") + .HasColumnType("INTEGER"); + + b.Property("Pos") + .HasColumnType("INTEGER"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("FlascheId"); + + b.HasIndex("Type", "Pos") + .IsUnique(); + + b.ToTable("Fillers"); + + b.HasData( + new + { + Id = 1, + Pos = 1, + Type = 0 + }, + new + { + Id = 2, + Pos = 2, + Type = 0 + }, + new + { + Id = 3, + Pos = 3, + Type = 0 + }, + new + { + Id = 4, + Pos = 1, + Type = 1 + }, + new + { + Id = 5, + Pos = 2, + Type = 1 + }, + new + { + Id = 6, + Pos = 3, + Type = 1 + }, + new + { + Id = 7, + Pos = 4, + Type = 1 + }, + new + { + Id = 8, + Pos = 5, + Type = 1 + }, + new + { + Id = 9, + Pos = 6, + Type = 1 + }, + new + { + Id = 10, + Pos = 7, + Type = 1 + }, + new + { + Id = 11, + Pos = 8, + Type = 1 + }, + new + { + Id = 12, + Pos = 4, + Type = 0 + }, + new + { + Id = 13, + Pos = 5, + Type = 0 + }, + new + { + Id = 14, + Pos = 6, + Type = 0 + }); + }); + + modelBuilder.Entity("CocktailWeb.Data.Flasche", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Alkoholisch") + .HasColumnType("INTEGER"); + + b.Property("ImageURL") + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Flaschen", (string)null); + + b.HasData( + new + { + Id = 1, + Alkoholisch = true, + Name = "Jägermeister" + }, + new + { + Id = 2, + Alkoholisch = true, + Name = "Wodka" + }); + }); + + modelBuilder.Entity("CocktailWeb.Data.Glas", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Fuellmenge") + .HasColumnType("INTEGER"); + + b.Property("ImageURL") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Glaeser", (string)null); + }); + + modelBuilder.Entity("CocktailWeb.Data.CocktailFlasche", b => + { + b.HasOne("CocktailWeb.Data.Cocktail", "Cocktail") + .WithMany("Cocktailflaschen") + .HasForeignKey("CocktailID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CocktailWeb.Data.Flasche", "Flasche") + .WithMany() + .HasForeignKey("FlascheID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cocktail"); + + b.Navigation("Flasche"); + }); + + modelBuilder.Entity("CocktailWeb.Data.Filler", b => + { + b.HasOne("CocktailWeb.Data.Flasche", "Flasche") + .WithMany() + .HasForeignKey("FlascheId"); + + b.Navigation("Flasche"); + }); + + modelBuilder.Entity("CocktailWeb.Data.Cocktail", b => + { + b.Navigation("Cocktailflaschen"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CocktailWeb/Migrations/20240228183936_ModiyFillerUniquePosType.cs b/CocktailWeb/Migrations/20240228183936_ModiyFillerUniquePosType.cs new file mode 100644 index 0000000..96eae73 --- /dev/null +++ b/CocktailWeb/Migrations/20240228183936_ModiyFillerUniquePosType.cs @@ -0,0 +1,182 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CocktailWeb.Migrations +{ + /// + public partial class ModiyFillerUniquePosType : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 4, + column: "Pos", + value: 1); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 5, + column: "Pos", + value: 2); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 6, + column: "Pos", + value: 3); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 7, + column: "Pos", + value: 4); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 8, + column: "Pos", + value: 5); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 9, + column: "Pos", + value: 6); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 10, + column: "Pos", + value: 7); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 11, + column: "Pos", + value: 8); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 12, + column: "Pos", + value: 4); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 13, + column: "Pos", + value: 5); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 14, + column: "Pos", + value: 6); + + migrationBuilder.CreateIndex( + name: "IX_Fillers_Type_Pos", + table: "Fillers", + columns: new[] { "Type", "Pos" }, + unique: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex( + name: "IX_Fillers_Type_Pos", + table: "Fillers"); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 4, + column: "Pos", + value: 4); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 5, + column: "Pos", + value: 5); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 6, + column: "Pos", + value: 6); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 7, + column: "Pos", + value: 7); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 8, + column: "Pos", + value: 8); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 9, + column: "Pos", + value: 9); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 10, + column: "Pos", + value: 10); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 11, + column: "Pos", + value: 11); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 12, + column: "Pos", + value: 12); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 13, + column: "Pos", + value: 13); + + migrationBuilder.UpdateData( + table: "Fillers", + keyColumn: "Id", + keyValue: 14, + column: "Pos", + value: 14); + } + } +}