diff --git a/.gitignore b/.gitignore index d71c508..40b2130 100644 --- a/.gitignore +++ b/.gitignore @@ -136,3 +136,5 @@ $RECYCLE.BIN/ .DS_Store _NCrunch* +/src/WebApi/appsettings.json +/src/WebApi/appsettings.json diff --git a/src/WebApi/Controllers/MenuitemHasAllergiesController.cs b/src/WebApi/Controllers/MenuitemHasAllergiesController.cs new file mode 100644 index 0000000..a727306 --- /dev/null +++ b/src/WebApi/Controllers/MenuitemHasAllergiesController.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using WebApi.Data; +using WebApi.Models; + +namespace WebApi.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class MenuitemHasAllergiesController : ControllerBase + { + private readonly WebApiContext _context; + + public MenuitemHasAllergiesController(WebApiContext context) + { + _context = context; + } + + // GET: api/MenuitemHasAllergies + [HttpGet] + public async Task>> GetMenuitemHasAllergie() + { + if (_context.MenuitemHasAllergie == null) + { + return NotFound(); + } + return await _context.MenuitemHasAllergie.ToListAsync(); + } + + // GET: api/MenuitemHasAllergies/5 + [HttpGet("{id}")] + public async Task> GetMenuitemHasAllergie(int? id) + { + if (_context.MenuitemHasAllergie == null) + { + return NotFound(); + } + var menuitemHasAllergie = await _context.MenuitemHasAllergie.FindAsync(id); + + if (menuitemHasAllergie == null) + { + return NotFound(); + } + + return menuitemHasAllergie; + } + + // PUT: api/MenuitemHasAllergies/5 + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPut("{id}")] + public async Task PutMenuitemHasAllergie(int? id, MenuitemHasAllergie menuitemHasAllergie) + { + if (id != menuitemHasAllergie.MenuItem_IDMenuItem) + { + return BadRequest(); + } + + _context.Entry(menuitemHasAllergie).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!MenuitemHasAllergieExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return NoContent(); + } + + // POST: api/MenuitemHasAllergies + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPost] + public async Task> PostMenuitemHasAllergie(MenuitemHasAllergie menuitemHasAllergie) + { + if (_context.MenuitemHasAllergie == null) + { + return Problem("Entity set 'WebApiContext.MenuitemHasAllergie' is null."); + } + _context.MenuitemHasAllergie.Add(menuitemHasAllergie); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (MenuitemHasAllergieExists(menuitemHasAllergie.MenuItem_IDMenuItem)) + { + return Conflict(); + } + else + { + throw; + } + } + + return CreatedAtAction("GetMenuitemHasAllergie", new { id = menuitemHasAllergie.MenuItem_IDMenuItem }, menuitemHasAllergie); + } + + // DELETE: api/MenuitemHasAllergies/5 + [HttpDelete("{id}")] + public async Task DeleteMenuitemHasAllergie(int? id) + { + if (_context.MenuitemHasAllergie == null) + { + return NotFound(); + } + var menuitemHasAllergie = await _context.MenuitemHasAllergie.FindAsync(id); + if (menuitemHasAllergie == null) + { + return NotFound(); + } + + _context.MenuitemHasAllergie.Remove(menuitemHasAllergie); + await _context.SaveChangesAsync(); + + return NoContent(); + } + + private bool MenuitemHasAllergieExists(int? id) + { + return (_context.MenuitemHasAllergie?.Any(e => e.MenuItem_IDMenuItem == id)).GetValueOrDefault(); + } + } +} diff --git a/src/WebApi/Data/WebApiContext.cs b/src/WebApi/Data/WebApiContext.cs index 15c55e4..bf02a5a 100644 --- a/src/WebApi/Data/WebApiContext.cs +++ b/src/WebApi/Data/WebApiContext.cs @@ -7,224 +7,260 @@ namespace WebApi.Data; public partial class WebApiContext : DbContext { - public WebApiContext(DbContextOptions options) - : base(options) - { - } + public WebApiContext(DbContextOptions options) + : base(options) + { + } - public virtual DbSet Allergies { get; set; } + public virtual DbSet Allergies { get; set; } - public virtual DbSet Bestellungspositions { get; set; } + public virtual DbSet Bestellungspositions { get; set; } - public virtual DbSet Kundes { get; set; } + public virtual DbSet Kundes { get; set; } - public virtual DbSet Menuitems { get; set; } + public virtual DbSet Menuitems { get; set; } - public virtual DbSet Menuitemkategories { get; set; } + public virtual DbSet Menuitemkategories { get; set; } - public virtual DbSet Menuitemueberkategories { get; set; } + public virtual DbSet Menuitemueberkategories { get; set; } - public virtual DbSet Rabatts { get; set; } + public virtual DbSet Rabatts { get; set; } - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder - .UseCollation("utf8_general_ci") - .HasCharSet("utf8"); + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder + .UseCollation("utf8_general_ci") + .HasCharSet("utf8"); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Idallergie).HasName("PRIMARY"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Idallergie).HasName("PRIMARY"); - entity.ToTable("allergie"); + entity.ToTable("allergie"); - entity.Property(e => e.Idallergie) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("IDAllergie"); - entity.Property(e => e.Beschreibung).HasMaxLength(45); - }); + entity.Property(e => e.Idallergie) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("IDAllergie"); + entity.Property(e => e.Beschreibung).HasMaxLength(45); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Idbestellung).HasName("PRIMARY"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Idbestellung).HasName("PRIMARY"); - entity.ToTable("bestellungsposition"); + entity.ToTable("bestellungsposition"); - entity.HasIndex(e => e.KundeIdkunde, "fk_Bestellung_Kunde"); + entity.HasIndex(e => e.KundeIdkunde, "fk_Bestellung_Kunde"); - entity.HasIndex(e => e.RabattIdrabatt, "fk_Bestellungsposition_Rabatt1"); + entity.HasIndex(e => e.RabattIdrabatt, "fk_Bestellungsposition_Rabatt1"); - entity.Property(e => e.Idbestellung) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("IDBestellung"); - entity.Property(e => e.Datum).HasColumnType("datetime"); - entity.Property(e => e.KundeIdkunde) - .HasColumnType("int(11)") - .HasColumnName("Kunde_IDKunde"); - entity.Property(e => e.Menge).HasColumnType("int(11)"); - entity.Property(e => e.RabattIdrabatt) - .HasColumnType("int(11)") - .HasColumnName("Rabatt_IDRabatt"); + entity.Property(e => e.Idbestellung) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("IDBestellung"); + entity.Property(e => e.Datum).HasColumnType("datetime"); + entity.Property(e => e.KundeIdkunde) + .HasColumnType("int(11)") + .HasColumnName("Kunde_IDKunde"); + entity.Property(e => e.Menge).HasColumnType("int(11)"); + entity.Property(e => e.RabattIdrabatt) + .HasColumnType("int(11)") + .HasColumnName("Rabatt_IDRabatt"); - entity.HasOne(d => d.KundeIdkundeNavigation).WithMany(p => p.Bestellungspositions) - .HasForeignKey(d => d.KundeIdkunde) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_Bestellung_Kunde"); + entity.HasOne(d => d.KundeIdkundeNavigation).WithMany(p => p.Bestellungspositions) + .HasForeignKey(d => d.KundeIdkunde) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("fk_Bestellung_Kunde"); - entity.HasOne(d => d.RabattIdrabattNavigation).WithMany(p => p.Bestellungspositions) - .HasForeignKey(d => d.RabattIdrabatt) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_Bestellungsposition_Rabatt1"); + entity.HasOne(d => d.RabattIdrabattNavigation).WithMany(p => p.Bestellungspositions) + .HasForeignKey(d => d.RabattIdrabatt) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("fk_Bestellungsposition_Rabatt1"); - entity.HasMany(d => d.MenuItemIdmenuItems).WithMany(p => p.BestellungspositionIdbestellungs) - .UsingEntity>( - "BestellungspositionHasMenuitem", - r => r.HasOne().WithMany() - .HasForeignKey("MenuItemIdmenuItem") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_Bestellungsposition_has_MenuItem_MenuItem1"), - l => l.HasOne().WithMany() - .HasForeignKey("BestellungspositionIdbestellung") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_Bestellungsposition_has_MenuItem_Bestellungsposition1"), - j => - { - j.HasKey("BestellungspositionIdbestellung", "MenuItemIdmenuItem") - .HasName("PRIMARY") - .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 }); - j.ToTable("bestellungsposition_has_menuitem"); - j.HasIndex(new[] { "MenuItemIdmenuItem" }, "fk_Bestellungsposition_has_MenuItem_MenuItem1"); - j.IndexerProperty("BestellungspositionIdbestellung") - .HasColumnType("int(11)") - .HasColumnName("Bestellungsposition_IDBestellung"); - j.IndexerProperty("MenuItemIdmenuItem") - .HasColumnType("int(11)") - .HasColumnName("MenuItem_IDMenuItem"); - }); - }); + entity.HasMany(d => d.MenuItemIdmenuItems).WithMany(p => p.BestellungspositionIdbestellungs) + .UsingEntity>( + "BestellungspositionHasMenuitem", + r => r.HasOne().WithMany() + .HasForeignKey("MenuItemIdmenuItem") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("fk_Bestellungsposition_has_MenuItem_MenuItem1"), + l => l.HasOne().WithMany() + .HasForeignKey("BestellungspositionIdbestellung") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("fk_Bestellungsposition_has_MenuItem_Bestellungsposition1"), + j => + { + j.HasKey("BestellungspositionIdbestellung", "MenuItemIdmenuItem") + .HasName("PRIMARY") + .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 }); + j.ToTable("bestellungsposition_has_menuitem"); + j.HasIndex(new[] { "MenuItemIdmenuItem" }, "fk_Bestellungsposition_has_MenuItem_MenuItem1"); + j.IndexerProperty("BestellungspositionIdbestellung") + .HasColumnType("int(11)") + .HasColumnName("Bestellungsposition_IDBestellung"); + j.IndexerProperty("MenuItemIdmenuItem") + .HasColumnType("int(11)") + .HasColumnName("MenuItem_IDMenuItem"); + }); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Idkunde).HasName("PRIMARY"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Idkunde).HasName("PRIMARY"); - entity.ToTable("kunde"); + entity.ToTable("kunde"); - entity.Property(e => e.Idkunde) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("IDKunde"); - entity.Property(e => e.Code) - .HasMaxLength(45) - .HasColumnName("code"); - entity.Property(e => e.Treuepunkte).HasColumnType("int(11)"); - }); + entity.Property(e => e.Idkunde) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("IDKunde"); + entity.Property(e => e.Code) + .HasMaxLength(45) + .HasColumnName("code"); + entity.Property(e => e.Treuepunkte).HasColumnType("int(11)"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.IdmenuItem).HasName("PRIMARY"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.IdmenuItem).HasName("PRIMARY"); - entity.ToTable("menuitem"); + entity.ToTable("menuitem"); - entity.HasIndex(e => e.MenuItemKategorieIdmenuItemKategorie, "fk_MenuItem_MenuItemKategorie1"); + entity.HasIndex(e => e.MenuItemKategorieIdmenuItemKategorie, "fk_MenuItem_MenuItemKategorie1"); - entity.Property(e => e.IdmenuItem) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("IDMenuItem"); - entity.Property(e => e.Bezeichnung).HasMaxLength(45); - entity.Property(e => e.MenuItemKategorieIdmenuItemKategorie) - .HasColumnType("int(11)") - .HasColumnName("MenuItemKategorie_IDMenuItemKategorie"); - entity.Property(e => e.Preis).HasPrecision(8, 2); - entity.Property(e => e.Zusatzinformation).HasMaxLength(45); + entity.Property(e => e.IdmenuItem) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("IDMenuItem"); + entity.Property(e => e.Bezeichnung).HasMaxLength(45); + entity.Property(e => e.MenuItemKategorieIdmenuItemKategorie) + .HasColumnType("int(11)") + .HasColumnName("MenuItemKategorie_IDMenuItemKategorie"); + entity.Property(e => e.Preis).HasPrecision(8, 2); + entity.Property(e => e.Zusatzinformation).HasMaxLength(45); - entity.HasOne(d => d.MenuItemKategorieIdmenuItemKategorieNavigation).WithMany(p => p.Menuitems) - .HasForeignKey(d => d.MenuItemKategorieIdmenuItemKategorie) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_MenuItem_MenuItemKategorie1"); + entity.HasOne(d => d.MenuItemKategorieIdmenuItemKategorieNavigation).WithMany(p => p.Menuitems) + .HasForeignKey(d => d.MenuItemKategorieIdmenuItemKategorie) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("fk_MenuItem_MenuItemKategorie1"); - entity.HasMany(d => d.AllergieIdallergies).WithMany(p => p.MenuItemIdmenuItems) - .UsingEntity>( - "MenuitemHasAllergie", - r => r.HasOne().WithMany() - .HasForeignKey("AllergieIdallergie") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_MenuItem_has_Allergie_Allergie1"), - l => l.HasOne().WithMany() - .HasForeignKey("MenuItemIdmenuItem") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_MenuItem_has_Allergie_MenuItem1"), - j => - { - j.HasKey("MenuItemIdmenuItem", "AllergieIdallergie") - .HasName("PRIMARY") - .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 }); - j.ToTable("menuitem_has_allergie"); - j.HasIndex(new[] { "AllergieIdallergie" }, "fk_MenuItem_has_Allergie_Allergie1"); - j.IndexerProperty("MenuItemIdmenuItem") - .HasColumnType("int(11)") - .HasColumnName("MenuItem_IDMenuItem"); - j.IndexerProperty("AllergieIdallergie") - .HasColumnType("int(11)") - .HasColumnName("Allergie_IDAllergie"); - }); - }); + //entity.HasMany(d => d.AllergieIdallergies).WithMany(p => p.MenuItemIdmenuItems) + // .UsingEntity>( + // "MenuitemHasAllergie", + // r => r.HasOne().WithMany() + // .HasForeignKey("AllergieIdallergie") + // .OnDelete(DeleteBehavior.ClientSetNull) + // .HasConstraintName("fk_MenuItem_has_Allergie_Allergie1"), + // l => l.HasOne().WithMany() + // .HasForeignKey("MenuItemIdmenuItem") + // .OnDelete(DeleteBehavior.ClientSetNull) + // .HasConstraintName("fk_MenuItem_has_Allergie_MenuItem1"), + // j => + // { + // j.HasKey("MenuItemIdmenuItem", "AllergieIdallergie") + // .HasName("PRIMARY") + // .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 }); + // j.ToTable("menuitem_has_allergie"); + // j.HasIndex(new[] { "AllergieIdallergie" }, "fk_MenuItem_has_Allergie_Allergie1"); + // j.IndexerProperty("MenuItemIdmenuItem") + // .HasColumnType("int(11)") + // .HasColumnName("MenuItem_IDMenuItem"); + // j.IndexerProperty("AllergieIdallergie") + // .HasColumnType("int(11)") + // .HasColumnName("Allergie_IDAllergie"); + // }); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.IdmenuItemKategorie).HasName("PRIMARY"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.IdmenuItemKategorie).HasName("PRIMARY"); - entity.ToTable("menuitemkategorie"); + entity.ToTable("menuitemkategorie"); - entity.HasIndex(e => e.MenuItemUeberkategorieIdmenuItemUeberkategorie, "fk_MenuItemKategorie_MenuItemUeberkategorie1"); + entity.HasIndex(e => e.MenuItemUeberkategorieIdmenuItemUeberkategorie, "fk_MenuItemKategorie_MenuItemUeberkategorie1"); - entity.Property(e => e.IdmenuItemKategorie) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("IDMenuItemKategorie"); - entity.Property(e => e.Bezeichnung).HasMaxLength(45); - entity.Property(e => e.MenuItemUeberkategorieIdmenuItemUeberkategorie) - .HasColumnType("int(11)") - .HasColumnName("MenuItemUeberkategorie_IDMenuItemUeberkategorie"); + entity.Property(e => e.IdmenuItemKategorie) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("IDMenuItemKategorie"); + entity.Property(e => e.Bezeichnung).HasMaxLength(45); + entity.Property(e => e.MenuItemUeberkategorieIdmenuItemUeberkategorie) + .HasColumnType("int(11)") + .HasColumnName("MenuItemUeberkategorie_IDMenuItemUeberkategorie"); - entity.HasOne(d => d.MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation).WithMany(p => p.Menuitemkategories) - .HasForeignKey(d => d.MenuItemUeberkategorieIdmenuItemUeberkategorie) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("fk_MenuItemKategorie_MenuItemUeberkategorie1"); - }); + entity.HasOne(d => d.MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation).WithMany(p => p.Menuitemkategories) + .HasForeignKey(d => d.MenuItemUeberkategorieIdmenuItemUeberkategorie) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("fk_MenuItemKategorie_MenuItemUeberkategorie1"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.IdmenuItemUeberkategorie).HasName("PRIMARY"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.IdmenuItemUeberkategorie).HasName("PRIMARY"); - entity.ToTable("menuitemueberkategorie"); + entity.ToTable("menuitemueberkategorie"); - entity.Property(e => e.IdmenuItemUeberkategorie) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("IDMenuItemUeberkategorie"); - entity.Property(e => e.Bezeichnung).HasMaxLength(45); - }); + entity.Property(e => e.IdmenuItemUeberkategorie) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("IDMenuItemUeberkategorie"); + entity.Property(e => e.Bezeichnung).HasMaxLength(45); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Idrabatt).HasName("PRIMARY"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Idrabatt).HasName("PRIMARY"); - entity.ToTable("rabatt"); + entity.ToTable("rabatt"); - entity.Property(e => e.Idrabatt) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("IDRabatt"); - entity.Property(e => e.GueltigkeitBis).HasColumnType("datetime"); - entity.Property(e => e.GueltigkeitVon).HasColumnType("datetime"); - entity.Property(e => e.Prozent).HasPrecision(8, 2); - }); + entity.Property(e => e.Idrabatt) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("IDRabatt"); + entity.Property(e => e.GueltigkeitBis).HasColumnType("datetime"); + entity.Property(e => e.GueltigkeitVon).HasColumnType("datetime"); + entity.Property(e => e.Prozent).HasPrecision(8, 2); + }); - OnModelCreatingPartial(modelBuilder); - } + //modelBuilder.Entity(entity => + //{ + // entity.HasKey(e => e.Id).HasName("PRIMARY"); + // entity.ToTable("admin"); + // entity.Property(e => e.Id) + // .ValueGeneratedNever() + // .HasColumnType("int(11)") + // .HasColumnName("Id"); + // entity.Property(e => e.Username).HasMaxLength(100); + // entity.Property(e => e.Password).HasMaxLength(100); + //}); - partial void OnModelCreatingPartial(ModelBuilder modelBuilder); + //modelBuilder.Entity(entity => + //{ + // entity.HasKey(e => new { e.BestellungspositionId, e.MenuitemId }) + // .HasName("PRIMARY"); + + // entity.ToTable("bestellungsposition_has_menuitem"); + + // entity.Property(e => e.BestellungspositionId).HasColumnType("int(11)"); + // entity.Property(e => e.MenuitemId).HasColumnType("int(11)"); + //}); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.MenuItem_IDMenuItem, e.Allergie_IDAllergie }) + .HasName("PRIMARY"); + + entity.ToTable("menuitem_has_allergie"); + + entity.Property(e => e.MenuItem_IDMenuItem).HasColumnType("int(11)"); + entity.Property(e => e.Allergie_IDAllergie).HasColumnType("int(11)"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); + + public DbSet MenuitemHasAllergie { get; set; } = default!; } diff --git a/src/WebApi/Models/MenuitemHasAllergie.cs b/src/WebApi/Models/MenuitemHasAllergie.cs new file mode 100644 index 0000000..8613fd5 --- /dev/null +++ b/src/WebApi/Models/MenuitemHasAllergie.cs @@ -0,0 +1,11 @@ +namespace WebApi.Models +{ + public class MenuitemHasAllergie + { + // navigation references Menuitem + public int? MenuItem_IDMenuItem { get; set; } + + // navigation references Allergie + public int? Allergie_IDAllergie { get; set; } + } +} diff --git a/src/WebApi/WebApi.csproj b/src/WebApi/WebApi.csproj index 276bbc4..7975c7c 100644 --- a/src/WebApi/WebApi.csproj +++ b/src/WebApi/WebApi.csproj @@ -7,18 +7,18 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + diff --git a/src/WebApi/appsettings.json b/src/WebApi/appsettings.json deleted file mode 100644 index 8cc16c3..0000000 --- a/src/WebApi/appsettings.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - }, - "AllowedHosts": "*", - "ConnectionStrings": { - "Y4FDB": "Server=localhost;Database=y4f;Uid=user;Pwd=user" - } -} diff --git a/src/y4f/Pages/SpeisekarteCnDetails.razor b/src/y4f/Pages/SpeisekarteCnDetails.razor index 242fd18..72e0d5b 100644 --- a/src/y4f/Pages/SpeisekarteCnDetails.razor +++ b/src/y4f/Pages/SpeisekarteCnDetails.razor @@ -3,11 +3,9 @@ @inject HttpClient Http

Speisekarte Chinesisch

-@* create an container bootstrap 5*@
- @* Navigation button group, stretch on the width size of the col-8 *@
@@ -15,45 +13,39 @@
- @* create an bootstrap card for each speise*@ - @*make card round with border*@ -
-
-
Nudeln mit Hühnerfleisch (A, E)
-

Huhn, Gemüse

-
-
- -
-
-
Knusprige Ente auf Nudeln (A, D)
-

Ente

-
-
- -
-
- @*create two divs columns*@ -
-
-
Nudeln mit Tofu (D, F)
-

Tofu

-
- @*div text center*@ -
-
10,00€
-
- -
- - - - - -
-
- - + @foreach (var item in menuitemueberkategories) + { + @if (item.Bezeichnung == "Chinesisch") + { + @foreach (var item2 in menuitemkategories) + { + if (item2.MenuItemUeberkategorieIdmenuItemUeberkategorie == item.IdmenuItemUeberkategorie) + { + @foreach (var item3 in menuitems) + { + if (item2.IdmenuItemKategorie == item3.MenuItemKategorieIdmenuItemKategorie) + { +
+
+ @*create two divs columns*@ +
+
+
@item3.Bezeichnung
+

@item3.Zusatzinformation

+
+ @*div text center*@ +
+
@item3.Preis
+
+
+
+
+ } + } + } + } + } + }
@* warenkorb anzeige als bootstrap card*@ @@ -76,9 +68,6 @@ Zurück Weiter
- - -
@@ -87,6 +76,122 @@ - @code { - } \ No newline at end of file + // allergien, bestellungsposition, kunde, menuitem, menuitemkategorie, menuitemueberkategorie, rabatt + + private List allergien = new List(); + private List bestellungspositions = new List(); + private List kunden = new List(); + private List menuitems = new List(); + private List menuitemkategories = new List(); + private List menuitemueberkategories = new List(); + private List rabatte = new List(); + + protected override async Task OnInitializedAsync() + { + allergien = await Http.GetFromJsonAsync>("https://localhost:7076/api/allergien"); + bestellungspositions = await Http.GetFromJsonAsync>("https://localhost:7076/api/bestellungspositionen"); + kunden = await Http.GetFromJsonAsync>("https://localhost:7076/api/kunden"); + menuitems = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitems"); + menuitemkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemkategories"); + menuitemueberkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemueberkategories"); + rabatte = await Http.GetFromJsonAsync>("https://localhost:7076/api/Rabatte"); + } + + public class Allergie + { + public int Idallergie { get; set; } + + public string? Beschreibung { get; set; } + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Bestellungsposition + { + public int Idbestellung { get; set; } + + public int? Menge { get; set; } + + public DateTime? Datum { get; set; } + + public int KundeIdkunde { get; set; } + + public int RabattIdrabatt { get; set; } + + public virtual Kunde KundeIdkundeNavigation { get; set; } = null!; + + public virtual Rabatt RabattIdrabattNavigation { get; set; } = null!; + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Kunde + { + public int Idkunde { get; set; } + + public string? Code { get; set; } + + public int? Treuepunkte { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } + + public class Menuitem + { + public int IdmenuItem { get; set; } + + public string? Bezeichnung { get; set; } + + public string? Zusatzinformation { get; set; } + + public decimal? Preis { get; set; } + + public int MenuItemKategorieIdmenuItemKategorie { get; set; } + + public virtual Menuitemkategorie MenuItemKategorieIdmenuItemKategorieNavigation { get; set; } = null!; + + public virtual ICollection AllergieIdallergies { get; set; } = new List(); + + public virtual ICollection BestellungspositionIdbestellungs { get; set; } = new List(); + } + public class Menuitemkategorie + { + public int IdmenuItemKategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public int MenuItemUeberkategorieIdmenuItemUeberkategorie { get; set; } + + public virtual Menuitemueberkategorie MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation { get; set; } = null!; + + public virtual ICollection Menuitems { get; set; } = new List(); + } + + public class Menuitemueberkategorie + { + public int IdmenuItemUeberkategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public virtual ICollection Menuitemkategories { get; set; } = new List(); + } + + public class Rabatt + { + public int Idrabatt { get; set; } + + public decimal? Prozent { get; set; } + + public DateTime? GueltigkeitVon { get; set; } + + public DateTime? GueltigkeitBis { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } + + + + + + + +} \ No newline at end of file diff --git a/src/y4f/Pages/SpeisekarteDrDetails.razor b/src/y4f/Pages/SpeisekarteDrDetails.razor index f032424..f0c0f33 100644 --- a/src/y4f/Pages/SpeisekarteDrDetails.razor +++ b/src/y4f/Pages/SpeisekarteDrDetails.razor @@ -14,44 +14,42 @@ - @* create an bootstrap card for each speise*@ - @*make card round with border*@ -
-
-
Nudeln mit Hühnerfleisch (A, E)
-

Huhn, Gemüse

-
-
+ @foreach (var item in menuitemueberkategories) + { + @if (item.Bezeichnung == "Getränke") + { + @foreach (var item2 in menuitemkategories) + { + if (item2.MenuItemUeberkategorieIdmenuItemUeberkategorie == item.IdmenuItemUeberkategorie) + { + @foreach (var item3 in menuitems) + { + if (item2.IdmenuItemKategorie == item3.MenuItemKategorieIdmenuItemKategorie) + { -
-
-
Knusprige Ente auf Nudeln (A, D)
-

Ente

-
-
+
+
+ @*create two divs columns*@ +
+
+
@item3.Bezeichnung
+

@item3.Zusatzinformation

+
+ @*div text center*@ +
+
@item3.Preis
+
+
+
+
+ } + } + } -
-
- @*create two divs columns*@ -
-
-
Nudeln mit Tofu (D, F)
-

Tofu

-
- @*div text center*@ -
-
10,00€
-
- -
- - - - - -
-
+ } + } + }
@@ -85,7 +83,122 @@ - - @code { - } \ No newline at end of file + // allergien, bestellungsposition, kunde, menuitem, menuitemkategorie, menuitemueberkategorie, rabatt + + private List allergien = new List(); + private List bestellungspositions = new List(); + private List kunden = new List(); + private List menuitems = new List(); + private List menuitemkategories = new List(); + private List menuitemueberkategories = new List(); + private List rabatte = new List(); + + protected override async Task OnInitializedAsync() + { + allergien = await Http.GetFromJsonAsync>("https://localhost:7076/api/allergien"); + bestellungspositions = await Http.GetFromJsonAsync>("https://localhost:7076/api/bestellungspositionen"); + kunden = await Http.GetFromJsonAsync>("https://localhost:7076/api/kunden"); + menuitems = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitems"); + menuitemkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemkategories"); + menuitemueberkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemueberkategories"); + rabatte = await Http.GetFromJsonAsync>("https://localhost:7076/api/Rabatte"); + } + + public class Allergie + { + public int Idallergie { get; set; } + + public string? Beschreibung { get; set; } + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Bestellungsposition + { + public int Idbestellung { get; set; } + + public int? Menge { get; set; } + + public DateTime? Datum { get; set; } + + public int KundeIdkunde { get; set; } + + public int RabattIdrabatt { get; set; } + + public virtual Kunde KundeIdkundeNavigation { get; set; } = null!; + + public virtual Rabatt RabattIdrabattNavigation { get; set; } = null!; + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Kunde + { + public int Idkunde { get; set; } + + public string? Code { get; set; } + + public int? Treuepunkte { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } + + public class Menuitem + { + public int IdmenuItem { get; set; } + + public string? Bezeichnung { get; set; } + + public string? Zusatzinformation { get; set; } + + public decimal? Preis { get; set; } + + public int MenuItemKategorieIdmenuItemKategorie { get; set; } + + public virtual Menuitemkategorie MenuItemKategorieIdmenuItemKategorieNavigation { get; set; } = null!; + + public virtual ICollection AllergieIdallergies { get; set; } = new List(); + + public virtual ICollection BestellungspositionIdbestellungs { get; set; } = new List(); + } + public class Menuitemkategorie + { + public int IdmenuItemKategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public int MenuItemUeberkategorieIdmenuItemUeberkategorie { get; set; } + + public virtual Menuitemueberkategorie MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation { get; set; } = null!; + + public virtual ICollection Menuitems { get; set; } = new List(); + } + + public class Menuitemueberkategorie + { + public int IdmenuItemUeberkategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public virtual ICollection Menuitemkategories { get; set; } = new List(); + } + + public class Rabatt + { + public int Idrabatt { get; set; } + + public decimal? Prozent { get; set; } + + public DateTime? GueltigkeitVon { get; set; } + + public DateTime? GueltigkeitBis { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } + + + + + + + +} \ No newline at end of file diff --git a/src/y4f/Pages/SpeisekarteEtcDetails.razor b/src/y4f/Pages/SpeisekarteEtcDetails.razor index 8ac6ffa..48a60c8 100644 --- a/src/y4f/Pages/SpeisekarteEtcDetails.razor +++ b/src/y4f/Pages/SpeisekarteEtcDetails.razor @@ -16,44 +16,40 @@
- @* create an bootstrap card for each speise*@ - @*make card round with border*@ -
-
-
Nudeln mit Hühnerfleisch (A, E)
-

Huhn, Gemüse

-
-
- -
-
-
Knusprige Ente auf Nudeln (A, D)
-

Ente

-
-
- -
-
- @*create two divs columns*@ -
-
-
Nudeln mit Tofu (D, F)
-

Tofu

-
- @*div text center*@ -
-
10,00€
-
- -
- - - - - -
-
+ @foreach (var item in menuitemueberkategories) + { + @if (item.Bezeichnung == "Japanisch") + { + @foreach (var item2 in menuitemkategories) + { + if (item2.MenuItemUeberkategorieIdmenuItemUeberkategorie == item.IdmenuItemUeberkategorie) + { + @foreach (var item3 in menuitems) + { + if (item2.IdmenuItemKategorie == item3.MenuItemKategorieIdmenuItemKategorie) + { +
+
+ @*create two divs columns*@ +
+
+
@item3.Bezeichnung
+

@item3.Zusatzinformation

+
+ @*div text center*@ +
+
@item3.Preis
+
+
+
+
+ } + } + } + } + } + }
@@ -90,4 +86,114 @@ @code { - } \ No newline at end of file + // allergien, bestellungsposition, kunde, menuitem, menuitemkategorie, menuitemueberkategorie, rabatt + + private List allergien = new List(); + private List bestellungspositions = new List(); + private List kunden = new List(); + private List menuitems = new List(); + private List menuitemkategories = new List(); + private List menuitemueberkategories = new List(); + private List rabatte = new List(); + + protected override async Task OnInitializedAsync() + { + allergien = await Http.GetFromJsonAsync>("https://localhost:7076/api/allergien"); + bestellungspositions = await Http.GetFromJsonAsync>("https://localhost:7076/api/bestellungspositionen"); + kunden = await Http.GetFromJsonAsync>("https://localhost:7076/api/kunden"); + menuitems = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitems"); + menuitemkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemkategories"); + menuitemueberkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemueberkategories"); + rabatte = await Http.GetFromJsonAsync>("https://localhost:7076/api/Rabatte"); + } + + public class Allergie + { + public int Idallergie { get; set; } + + public string? Beschreibung { get; set; } + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Bestellungsposition + { + public int Idbestellung { get; set; } + + public int? Menge { get; set; } + + public DateTime? Datum { get; set; } + + public int KundeIdkunde { get; set; } + + public int RabattIdrabatt { get; set; } + + public virtual Kunde KundeIdkundeNavigation { get; set; } = null!; + + public virtual Rabatt RabattIdrabattNavigation { get; set; } = null!; + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Kunde + { + public int Idkunde { get; set; } + + public string? Code { get; set; } + + public int? Treuepunkte { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } + + public class Menuitem + { + public int IdmenuItem { get; set; } + + public string? Bezeichnung { get; set; } + + public string? Zusatzinformation { get; set; } + + public decimal? Preis { get; set; } + + public int MenuItemKategorieIdmenuItemKategorie { get; set; } + + public virtual Menuitemkategorie MenuItemKategorieIdmenuItemKategorieNavigation { get; set; } = null!; + + public virtual ICollection AllergieIdallergies { get; set; } = new List(); + + public virtual ICollection BestellungspositionIdbestellungs { get; set; } = new List(); + } + public class Menuitemkategorie + { + public int IdmenuItemKategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public int MenuItemUeberkategorieIdmenuItemUeberkategorie { get; set; } + + public virtual Menuitemueberkategorie MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation { get; set; } = null!; + + public virtual ICollection Menuitems { get; set; } = new List(); + } + + public class Menuitemueberkategorie + { + public int IdmenuItemUeberkategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public virtual ICollection Menuitemkategories { get; set; } = new List(); + } + + public class Rabatt + { + public int Idrabatt { get; set; } + + public decimal? Prozent { get; set; } + + public DateTime? GueltigkeitVon { get; set; } + + public DateTime? GueltigkeitBis { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/src/y4f/Pages/SpeisekarteJpDetails.razor b/src/y4f/Pages/SpeisekarteJpDetails.razor index b0e8c38..d50dd94 100644 --- a/src/y4f/Pages/SpeisekarteJpDetails.razor +++ b/src/y4f/Pages/SpeisekarteJpDetails.razor @@ -15,44 +15,43 @@
- @* create an bootstrap card for each speise*@ - @*make card round with border*@ -
-
-
Nudeln mit Hühnerfleisch (A, E)
-

Huhn, Gemüse

-
-
-
-
-
Knusprige Ente auf Nudeln (A, D)
-

Ente

-
-
+ @foreach (var item in menuitemueberkategories) + { + @if (item.Bezeichnung == "Japanisch") + { + @foreach (var item2 in menuitemkategories) + { + if (item2.MenuItemUeberkategorieIdmenuItemUeberkategorie == item.IdmenuItemUeberkategorie) + { + @foreach (var item3 in menuitems) + { + if (item2.IdmenuItemKategorie == item3.MenuItemKategorieIdmenuItemKategorie) + { -
-
- @*create two divs columns*@ -
-
-
Nudeln mit Tofu (D, F)
-

Tofu

-
- @*div text center*@ -
-
10,00€
-
+
+
+ @*create two divs columns*@ +
+
+
@item3.Bezeichnung
+

@item3.Zusatzinformation

+
+ @*div text center*@ +
+
@item3.Preis
+
+
+
+
+ } + } + } -
- - - - - -
-
+ } + } + }
@@ -86,7 +85,122 @@ - - @code { - } \ No newline at end of file + // allergien, bestellungsposition, kunde, menuitem, menuitemkategorie, menuitemueberkategorie, rabatt + + private List allergien = new List(); + private List bestellungspositions = new List(); + private List kunden = new List(); + private List menuitems = new List(); + private List menuitemkategories = new List(); + private List menuitemueberkategories = new List(); + private List rabatte = new List(); + + protected override async Task OnInitializedAsync() + { + allergien = await Http.GetFromJsonAsync>("https://localhost:7076/api/allergien"); + bestellungspositions = await Http.GetFromJsonAsync>("https://localhost:7076/api/bestellungspositionen"); + kunden = await Http.GetFromJsonAsync>("https://localhost:7076/api/kunden"); + menuitems = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitems"); + menuitemkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemkategories"); + menuitemueberkategories = await Http.GetFromJsonAsync>("https://localhost:7076/api/Menuitemueberkategories"); + rabatte = await Http.GetFromJsonAsync>("https://localhost:7076/api/Rabatte"); + } + + public class Allergie + { + public int Idallergie { get; set; } + + public string? Beschreibung { get; set; } + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Bestellungsposition + { + public int Idbestellung { get; set; } + + public int? Menge { get; set; } + + public DateTime? Datum { get; set; } + + public int KundeIdkunde { get; set; } + + public int RabattIdrabatt { get; set; } + + public virtual Kunde KundeIdkundeNavigation { get; set; } = null!; + + public virtual Rabatt RabattIdrabattNavigation { get; set; } = null!; + + public virtual ICollection MenuItemIdmenuItems { get; set; } = new List(); + } + public class Kunde + { + public int Idkunde { get; set; } + + public string? Code { get; set; } + + public int? Treuepunkte { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } + + public class Menuitem + { + public int IdmenuItem { get; set; } + + public string? Bezeichnung { get; set; } + + public string? Zusatzinformation { get; set; } + + public decimal? Preis { get; set; } + + public int MenuItemKategorieIdmenuItemKategorie { get; set; } + + public virtual Menuitemkategorie MenuItemKategorieIdmenuItemKategorieNavigation { get; set; } = null!; + + public virtual ICollection AllergieIdallergies { get; set; } = new List(); + + public virtual ICollection BestellungspositionIdbestellungs { get; set; } = new List(); + } + public class Menuitemkategorie + { + public int IdmenuItemKategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public int MenuItemUeberkategorieIdmenuItemUeberkategorie { get; set; } + + public virtual Menuitemueberkategorie MenuItemUeberkategorieIdmenuItemUeberkategorieNavigation { get; set; } = null!; + + public virtual ICollection Menuitems { get; set; } = new List(); + } + + public class Menuitemueberkategorie + { + public int IdmenuItemUeberkategorie { get; set; } + + public string? Bezeichnung { get; set; } + + public virtual ICollection Menuitemkategories { get; set; } = new List(); + } + + public class Rabatt + { + public int Idrabatt { get; set; } + + public decimal? Prozent { get; set; } + + public DateTime? GueltigkeitVon { get; set; } + + public DateTime? GueltigkeitBis { get; set; } + + public virtual ICollection Bestellungspositions { get; set; } = new List(); + } + + + + + + + +} \ No newline at end of file