public async Task <IActionResult> Create([Bind("ISBN, Titel, Autor, Verlag, Erscheinungsjahr, Regal, Reihe, AnzahlExemplare")] Buch buch) { if (ModelState.IsValid) { var buchVorhanden = await bibContext.Buch.SingleOrDefaultAsync(m => m.ISBN == buch.ISBN); // Fall: Buch ist noch nicht in DB vorhanden if (buchVorhanden == null) { bibContext.Add(buch); // Erzeuge die Exemplare für das Buch for (int i = 1; i <= buch.AnzahlExemplare; i++) { var exemplar = new Exemplar { ExemplarId = i, ISBN = buch.ISBN, Verfügbarkeit = true }; bibContext.Exemplar.Add(exemplar); } await bibContext.SaveChangesAsync(); toastNotification.AddToastMessage("Buch erstellt", "Das Buch \"" + buch.Titel + "\" wurde erstellt!", ToastEnums.ToastType.Success, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(Index))); } else // Fall: Buch ist bereits in DB vorhanden { toastNotification.AddToastMessage("Buch bereits vorhanden", "Das Buch mit der ISBN " + buch.ISBN + " existiert bereits in den Stammdaten!", ToastEnums.ToastType.Error, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(View(buch)); } } return(View(buch)); }
// Fügt ein Exemplar dem Warenkorb des eingeloggten Benutzers hinzu public async Task InDenWarenkorb(Buch.Exemplar exemplar) { var warenkorbExemplar = bibContext.Warenkorb.SingleOrDefault( c => c.Benutzer == BenutzerName && c.ISBN == exemplar.ISBN && c.ExemplarId == exemplar.ExemplarId); if (warenkorbExemplar == null) { var buch = bibContext.Buch.SingleOrDefault( c => c.ISBN == exemplar.ISBN); warenkorbExemplar = new Warenkorb() { Benutzer = BenutzerName, ISBN = exemplar.ISBN, ExemplarId = exemplar.ExemplarId, BuchTitel = buch.Titel }; bibContext.Add(warenkorbExemplar); await bibContext.SaveChangesAsync(); } }