more UI
This commit is contained in:
parent
06cbd78178
commit
94656244fb
6 changed files with 412 additions and 9 deletions
|
@ -1,3 +1,6 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Bücherwurm
|
namespace Bücherwurm
|
||||||
{
|
{
|
||||||
class Administration
|
class Administration
|
||||||
|
@ -14,5 +17,204 @@ namespace Bücherwurm
|
||||||
Inventory = new Inventory();
|
Inventory = new Inventory();
|
||||||
Lendings = new Lend_Administration();
|
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.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
12
Catalogue.cs
12
Catalogue.cs
|
@ -17,7 +17,7 @@ namespace Bücherwurm
|
||||||
|
|
||||||
public void Import(string JsonString)
|
public void Import(string JsonString)
|
||||||
{
|
{
|
||||||
//TODO: implement!
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Add(string Title, string Author,
|
public void Add(string Title, string Author,
|
||||||
|
@ -32,5 +32,15 @@ namespace Bücherwurm
|
||||||
{
|
{
|
||||||
Books.RemoveAll(book => book.BookId == BookID);
|
Books.RemoveAll(book => book.BookId == BookID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Book> GetBooks()
|
||||||
|
{
|
||||||
|
return Books;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Book LookupBook(int BookId)
|
||||||
|
{
|
||||||
|
return Books.Find(book => book.BookId == BookId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
26
Inventory.cs
26
Inventory.cs
|
@ -19,9 +19,35 @@ namespace Bücherwurm
|
||||||
NextId = NextId++;
|
NextId = NextId++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Add(int BookId)
|
||||||
|
{
|
||||||
|
InventoryList.Add(new Item(NextId, BookId));
|
||||||
|
NextId = NextId++;
|
||||||
|
}
|
||||||
|
|
||||||
public void Remove(int Id)
|
public void Remove(int Id)
|
||||||
{
|
{
|
||||||
InventoryList.RemoveAll(item => item.ItemId == 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -28,5 +28,15 @@ namespace Bücherwurm
|
||||||
{
|
{
|
||||||
ActiveLendings.RemoveAll(id => id == LendID);
|
ActiveLendings.RemoveAll(id => id == LendID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Lending> GetAllLendings()
|
||||||
|
{
|
||||||
|
return Lendings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Lending> GetActiveLendings()
|
||||||
|
{
|
||||||
|
return Lendings.FindAll(lend => ActiveLendings.Contains(lend.LendId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
162
Program.cs
162
Program.cs
|
@ -4,9 +4,167 @@ namespace Bücherwurm
|
||||||
{
|
{
|
||||||
class Program
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,8 @@
|
||||||
namespace Bücherwurm
|
namespace Bücherwurm
|
||||||
{
|
{
|
||||||
partial class Item
|
public enum StatusEnum
|
||||||
{
|
{
|
||||||
public enum StatusEnum
|
Available,
|
||||||
{
|
Lended
|
||||||
Available,
|
|
||||||
Lended
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue