using System; using System.Collections.Generic; namespace Bücherwurm { class Administration { private Catalogue Catalogue {get; set;} private Inventory Inventory {get; set;} private Lend_Administration Lendings {get; set;} public Administration() { Catalogue = new Catalogue(); Inventory = new Inventory(); Lendings = new Lend_Administration(); } public void ListCatalogue() { var BookList = Catalogue.GetBooks(); Console.WriteLine("Bücher insgesamt: {0}", BookList.Count); foreach (var book in BookList) { Console.WriteLine("---"); Console.WriteLine("ID: {0}", book.BookId); Console.WriteLine("Author: {0}", book.Author); Console.WriteLine("Titel: {0}", book.Title); } Console.WriteLine("---"); } public void AddToCatalogue() { var Correct = false; do { Console.WriteLine("Bitte geben sie den Author an:"); var Author = Console.ReadLine(); Console.WriteLine("Bitte geben Sie den Titel an:"); var Title = Console.ReadLine(); Console.WriteLine("Bitte geben Sie das Erscheinungsjahr an:"); var Year = Console.ReadLine(); Console.WriteLine("Bitte geben Sie das Erscheinungsland an:"); var Country = Console.ReadLine(); Console.WriteLine("Bitte geben Sie die Sprache an:"); var Language = Console.ReadLine(); Console.WriteLine("Bitte geben Sie den Bild-Link an:"); var ImgLink = Console.ReadLine(); Console.WriteLine("Bitte geben Sie den Link an:"); var Link = Console.ReadLine(); Console.WriteLine("Bitte geben Sie die Seitenanzahl an:"); var Pages = Console.ReadLine(); Console.WriteLine("---"); Console.WriteLine("Sind die Folgenden Angaben Korrekt?"); Console.WriteLine("Author: {0}", Author); Console.WriteLine("Titel: {0}", Title); Console.WriteLine("Erscheinungsjahr: {0}", Year); Console.WriteLine("Land: {0}", Country); Console.WriteLine("Sprache: {0}", Language); Console.WriteLine("Bildlink: {0}", ImgLink); Console.WriteLine("Link: {0}", Link); Console.WriteLine("Seitenzahl: {0}", Pages); Console.WriteLine("---"); Console.WriteLine("(j/n):"); string Select = Console.ReadLine().ToLower(); switch (Select) { case "j": { Correct = true; Catalogue.Add(Title, Author, Country, ImgLink, Link, Language, int.Parse(Pages), int.Parse(Year)); Console.WriteLine("Buch wurde hinzugefügt."); break; } case "n": { Correct = false; break; } default: { Console.WriteLine("Ungültige Eingabe: {0}", Select); break; } } } while (!Correct); } public void RemoveFromCatalogue() { Console.WriteLine("Bitte geben Sie die ID des Buches an:"); var Id = int.Parse(Console.ReadLine()); Catalogue.Remove(Id); Inventory.BookRemove(Id); } public void ListInventory() { var InventoryList = Inventory.GetInventory(); Console.WriteLine("Exemplare insgesamt: {0}", InventoryList.Count); foreach (var item in InventoryList) { Console.WriteLine("---"); Console.WriteLine("ID: {0}", item.ItemId); Console.WriteLine("BuchID: {0}", item.BookId); var Status = ""; switch (item.Status) { case StatusEnum.Available: { Status = "Verfügbar"; break; } case StatusEnum.Lended: { Status = "Entliehen"; break; } } Console.WriteLine("Status: {0}", Status); } Console.WriteLine("---"); } public void AddToInventory() { Console.WriteLine("Bitte geben sie die BuchID an:"); var BookId = int.Parse(Console.ReadLine()); var Book = Catalogue.LookupBook(BookId); if (Book != null) { Inventory.Add(Book); Console.WriteLine("Buch hinzugefügt."); } else { Console.WriteLine("Ein Buch mit der Id {0} existiert nicht!", BookId); } } public void RemoveFromInventory() { Console.WriteLine("Bitte Geben Sie die ExemplarID an:"); var ItemId = int.Parse(Console.ReadLine()); Inventory.Remove(ItemId); Console.WriteLine("Exemplar wurde entfernt"); } public void ListAllLendings() { FormatLendings(Lendings.GetAllLendings()); } public void ListActiveLendings() { FormatLendings(Lendings.GetActiveLendings()); } private void FormatLendings(List input) { Console.WriteLine("Ausleihen insgesamt: {0}", input.Count); foreach (var lending in input) { Console.WriteLine("---"); Console.WriteLine("AusleiheID: {0}", lending.LendId); Console.WriteLine("Ausgeliehene Exemplare: {0}", lending.LendItems); Console.WriteLine("Rückgabedatum: {0}", lending.ReturnDate); Console.WriteLine("Ausleihender Kunde: {0}", lending.Customer); } } public void MakeLending() { Console.WriteLine("Bitte Geben sie nacheinander die Exemplar IDs die ausgeliehen werden an, jeweils mit [Enter] bestätigen."); Console.WriteLine("Eine leere Zeile beendet die Aufnahme der entliehenen Exemplare."); var Input = ""; var LendList = new List(); do { Console.WriteLine("Bitte Geben sie die Exemplar ID an:"); Input = Console.ReadLine(); if (Input != "") { var ItemId = int.Parse(Input); if (Inventory.isAvailable(ItemId) && !LendList.Contains(ItemId)) { LendList.Add(ItemId); Console.WriteLine("ok"); } else { Console.WriteLine("Exemplar unbekannt oder bereits entliehen."); } } } while (Input != ""); Console.WriteLine("Bitte geben Sie den Kundennamen an:"); var Customer = Console.ReadLine(); Lendings.Lend(LendList.ToArray(), Customer); Console.WriteLine("Ausleihe erfolgreich!"); } public void ReturnLending() { Console.WriteLine("Bitte geben Sie die zurückzugebende AusleiheID an:"); var Returns = int.Parse(Console.ReadLine()); if (Lendings.GetActiveLendings().Find(lending => lending.LendId == Returns) != null) { Lendings.Return(Returns); Console.WriteLine("Ausleihe erfolgreich zurückgegeben."); } else { Console.WriteLine("Ausleihe nicht bekannt oder bereits urückgegeben."); } } public void MakeImport(string JsonText) { Catalogue.Import(JsonText); } } }