This commit is contained in:
nek0 2020-04-24 15:54:17 +02:00
parent 06cbd78178
commit 94656244fb
6 changed files with 412 additions and 9 deletions

View file

@ -1,3 +1,6 @@
using System;
using System.Collections.Generic;
namespace Bücherwurm
{
class Administration
@ -14,5 +17,204 @@ namespace Bücherwurm
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<Lending> 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<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();
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.");
}
}
}
}

View file

@ -17,7 +17,7 @@ namespace Bücherwurm
public void Import(string JsonString)
{
//TODO: implement!
throw new NotImplementedException();
}
public void Add(string Title, string Author,
@ -32,5 +32,15 @@ namespace Bücherwurm
{
Books.RemoveAll(book => book.BookId == BookID);
}
public List<Book> GetBooks()
{
return Books;
}
public Book LookupBook(int BookId)
{
return Books.Find(book => book.BookId == BookId);
}
}
}

View file

@ -19,9 +19,35 @@ namespace Bücherwurm
NextId = NextId++;
}
public void Add(int BookId)
{
InventoryList.Add(new Item(NextId, BookId));
NextId = NextId++;
}
public void Remove(int Id)
{
InventoryList.RemoveAll(item => item.ItemId == Id);
}
public void BookRemove(int BookId)
{
InventoryList.RemoveAll(item => item.BookId == BookId);
}
public List<Item> GetInventory()
{
return InventoryList;
}
public bool IsInInventory(int Id)
{
return (InventoryList.Find(item => item.ItemId == Id) != null);
}
public bool isAvailable(int Id)
{
return (InventoryList.Find(item => item.ItemId == Id && item.Status == StatusEnum.Available) != null);
}
}
}

View file

@ -28,5 +28,15 @@ namespace Bücherwurm
{
ActiveLendings.RemoveAll(id => id == LendID);
}
public List<Lending> GetAllLendings()
{
return Lendings;
}
public List<Lending> GetActiveLendings()
{
return Lendings.FindAll(lend => ActiveLendings.Contains(lend.LendId));
}
}
}

View file

@ -4,9 +4,167 @@ namespace Bücherwurm
{
class Program
{
static void Main(string[] args)
private Administration Admin {get; set;}
void Main(string[] args)
{
var Admin = new Administration();
Admin = new Administration();
var Continue = true;
do
{
Console.WriteLine("Bitte geben Sie den Buchstaben für den Gewünschten Bereich an:");
Console.Write("(K)atalog, (I)nventar, (A)usleihe, Program beenden (X):");
var CategorySelect = Console.ReadLine().ToLower();
switch (CategorySelect)
{
case "k":
{
CatalogueSelection();
break;
}
case "i":
{
InventorySelection();
break;
}
case "a":
{
LendingSelection();
break;
}
case "x":
{
Continue = false;
break;
}
default:
{
Console.WriteLine("Unbekannte Aktion: {0}", CategorySelect);
break;
}
}
} while (Continue);
}
private void CatalogueSelection()
{
Console.WriteLine("Bitte geben Sie den Buchstaben für die gewünschte Aktion an:");
Console.WriteLine("Katalog auf(l)isten, Bu(c)h hinzufügen, Buch entfe(r)nen, Katalog verlassen (x):");
var CatalogueSelect = Console.ReadLine().ToLower();
var Continue = true;
do
{
switch (CatalogueSelect)
{
case "x":
{
Continue = false;
break;
}
case "l":
{
Admin.ListCatalogue();
break;
}
case "c":
{
Admin.AddToCatalogue();
break;
}
case "r":
{
Admin.RemoveFromCatalogue();
break;
}
default:
{
Console.WriteLine("Ungültige Eingabe: {0}", CatalogueSelect);
break;
}
}
} while (Continue);
}
private void InventorySelection()
{
Console.WriteLine("Bitte geben Sie den Buchstaben für die gewünschte Aktion an:");
Console.WriteLine("Inventar auf(l)isten, Exemplar hinzufügen (c), Exemplar entfe(r)nen, Inventar verlassen (x):");
var InventorySelect = Console.ReadLine().ToLower();
var Continue = true;
do
{
switch (InventorySelect)
{
case "x":
{
Continue = false;
break;
}
case "l":
{
Admin.ListInventory();
break;
}
case "c":
{
Admin.AddToInventory();
break;
}
case "r":
{
Admin.RemoveFromInventory();
break;
}
default:
{
Console.WriteLine("Ungültige Eingabe: {0}", InventorySelect);
break;
}
}
} while (Continue);
}
private void LendingSelection()
{
Console.WriteLine("Bitte geben Sie den Buchstaben für die gewünschte Aktion an:");
Console.WriteLine("Aktive Ausleihen auf(l)isten, Alle Ausleihen Aufli(s)ten, (A)usleihe tätigen, Ausleihe zu(r)ückgeben, Ausleihe verlassen (x):");
var LendSelect = Console.ReadLine().ToLower();
var Continue = true;
do
{
switch (LendSelect)
{
case "x":
{
Continue = false;
break;
}
case "l":
{
Admin.ListActiveLendings();
break;
}
case "s":
{
Admin.ListAllLendings();
break;
}
case "a":
{
Admin.MakeLending();
break;
}
case "r":
{
Admin.ReturnLending();
break;
}
default:
{
Console.WriteLine("UNbekannte Eingabe: {0}", LendSelect);
break;
}
}
} while (Continue);
}
}
}

View file

@ -1,6 +1,4 @@
namespace Bücherwurm
{
partial class Item
{
public enum StatusEnum
{
@ -8,4 +6,3 @@ namespace Bücherwurm
Lended
}
}
}