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
|
||||
{
|
||||
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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
12
Catalogue.cs
12
Catalogue.cs
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
26
Inventory.cs
26
Inventory.cs
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
162
Program.cs
162
Program.cs
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
namespace Bücherwurm
|
||||
{
|
||||
partial class Item
|
||||
{
|
||||
public enum StatusEnum
|
||||
{
|
||||
|
@ -8,4 +6,3 @@ namespace Bücherwurm
|
|||
Lended
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue