235 lines
No EOL
8.6 KiB
C#
235 lines
No EOL
8.6 KiB
C#
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.GetProducts();
|
|
Console.WriteLine("Produkte insgesamt: {0}", BookList.Count);
|
|
foreach (var book in BookList)
|
|
{
|
|
Console.WriteLine("---");
|
|
Console.WriteLine("ID: {0}", book.ProductId);
|
|
Console.WriteLine("Titel: {0}", book.Name);
|
|
Console.WriteLine("Kategorie: {0}", book.Category);
|
|
}
|
|
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.AddBook(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.ProdId);
|
|
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.LookupProduct(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<Lending> input)
|
|
{
|
|
Console.WriteLine("Ausleihen insgesamt: {0}", input.Count);
|
|
foreach (var lending in input)
|
|
{
|
|
Console.WriteLine("---");
|
|
Console.WriteLine("AusleiheID: {0}", lending.LendId);
|
|
Console.WriteLine("Ausgeliehenes Exemplar: {0}", lending.LendItem);
|
|
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<int>();
|
|
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();
|
|
foreach (int id in LendList)
|
|
{
|
|
int time = Catalogue.LookupProduct(Inventory.LookupItem(id).ProdId).LendTime;
|
|
Lendings.Lend(id, Customer, time);
|
|
}
|
|
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 JsonTextBooks, string JsonTextMagazines)
|
|
{
|
|
Catalogue.ImportBooks(JsonTextBooks);
|
|
Catalogue.ImportMagazines(JsonTextMagazines);
|
|
foreach (var prod in Catalogue.GetProducts())
|
|
{
|
|
Inventory.Add(prod);
|
|
Inventory.Add(prod);
|
|
}
|
|
}
|
|
}
|
|
} |