public async Task <IActionResult> Loeschen(int?id) { var leihauftrag = bibContext.Leihauftrag.SingleOrDefault( c => c.Id == id); var leihauftragManager = LeihauftragManager.GetLeihauftragManager(bibContext); await leihauftragManager.Loeschen(leihauftrag); toastNotification.AddToastMessage("Leihauftrag entfernt", "Das Buch \"" + leihauftrag.BuchTitel + "\", welches von \"" + leihauftrag.Benutzer + "\" ausgliehen werden wollte, wurde aus den Leihaufträgen entfernt.", ToastEnums.ToastType.Success, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Verlaengern(int?id) { var leihauftrag = bibContext.Leihauftrag.SingleOrDefault( c => c.Id == id); var exemplar = bibContext.Exemplar.SingleOrDefault( c => c.ISBN == leihauftrag.ISBN && c.ExemplarId == leihauftrag.ExemplarId); var leihauftragManager = LeihauftragManager.GetLeihauftragManager(bibContext); await leihauftragManager.Verlaengern(exemplar); toastNotification.AddToastMessage("Buch verlängert", "Das Buch \"" + leihauftrag.BuchTitel + "\" des Benutzers \"" + leihauftrag.Benutzer + "\" wurde verlängert.", ToastEnums.ToastType.Success, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Ausleihen(int?id) { // Sucht der ID nach zugehörigen Warenkorb heraus. var leihauftrag = bibContext.Leihauftrag.SingleOrDefault( c => c.Id == id); var exemplar = bibContext.Exemplar.SingleOrDefault( c => c.ISBN == leihauftrag.ISBN && c.ExemplarId == leihauftrag.ExemplarId); var buch = await bibContext.Buch.SingleOrDefaultAsync(e => e.ISBN == exemplar.ISBN); if (buch == null) // Fall: Buch wurde mitlerweile gelöscht { toastNotification.AddToastMessage("Buch gelöscht", "Dieses Buch existiert nicht mehr in der Datenbank. Bitte löschen Sie den Leihauftrag.", ToastEnums.ToastType.Error, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(Index))); } if (!exemplar.Verfügbarkeit) { var exemplare = bibContext.Exemplar.Where(e => e.ISBN == buch.ISBN); Exemplar gesuchtesExemplar = null; // Wenn ein das Exemplar eines Buches bereits verliehen ist, suche ein freies Exemplar des Buches foreach (var exemplarSuchen in exemplare) { if (exemplarSuchen.Verfügbarkeit) { gesuchtesExemplar = exemplarSuchen; break; } } if (gesuchtesExemplar != null) // Fall: Exemplar bereits verliehen, jedoch wurde ein anderes Exemplar des Buches gefunden und verliehen { var oldExemplarId = exemplar.ExemplarId; var leihauftragManager = LeihauftragManager.GetLeihauftragManager(bibContext); leihauftrag.ExemplarId = gesuchtesExemplar.ExemplarId; await leihauftragManager.Ausleihen(gesuchtesExemplar, leihauftrag); toastNotification.AddToastMessage("Anderes Exemplar verliehen", "Das Exemplar " + oldExemplarId + " ist bereits verliehen! Es wurde nun das Exemplar " + gesuchtesExemplar.ExemplarId + " des Buches \"" + buch.Titel + "\" verliehen.", ToastEnums.ToastType.Warning, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(Index))); } // Wenn das Programm bis hierhin kommt, sind bereits alle Exemplare des Buches verliehen toastNotification.AddToastMessage("Alle Exemplare verliehen", "Es sind bereits alle Exemplare des Buches \"" + buch.Titel + "\" verliehen.", ToastEnums.ToastType.Error, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(Index))); } else // Fall: Das Buch wurde verliehen { var leihauftragManager = LeihauftragManager.GetLeihauftragManager(bibContext); await leihauftragManager.Ausleihen(exemplar, leihauftrag); toastNotification.AddToastMessage("Buch verliehen", "Das Buch \"" + buch.Titel + "\" wurde verliehen.", ToastEnums.ToastType.Success, new ToastOption() { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(Index))); } }