E28 Ex7 *noch nicht fertig!*
This commit is contained in:
parent
c7f8d8eb28
commit
ac4ac67414
@ -13,25 +13,104 @@ namespace Exercises_C_Sharp.E28_Classes
|
||||
{
|
||||
while(true)
|
||||
{
|
||||
//Schreiben Sie ein Menü (auch gerne in einer neuen Methode), in dem der Nutzer Auswählen kann, ob er einen Kunden, ein Produkt oder eine Rechnung erstellen kann. Geben Sie ihm auch die Möglichkeit, zu einer Rechnung Produkte hinzuzufügen und zu löschen.
|
||||
//Schreiben Sie ein Menü (auch gerne in einer neuen Methode), in dem der Nutzer Auswählen kann, ob er einen Kunden, ein Produkt oder eine Rechnung erstellen will. Geben Sie ihm auch die Möglichkeit, zu einer Rechnung Produkte hinzuzufügen und zu löschen.
|
||||
//Code Start
|
||||
Console.Clear();
|
||||
switch(Menu())
|
||||
{
|
||||
case 1:
|
||||
CreateNewCustomerAndAddToList();
|
||||
break;
|
||||
case 2:
|
||||
CreateNewProductAndAddToList();
|
||||
break;
|
||||
case 3:
|
||||
CreateNewInvoiceAndAddToList();
|
||||
break;
|
||||
case 4:
|
||||
var input = userSelectInvoice();
|
||||
if(input != null) AddElementToInvoice(input);
|
||||
break;
|
||||
case 5:
|
||||
var input2 = userSelectInvoice();
|
||||
if(input2 != null) DeleteElementToInvoice(input2);
|
||||
break;
|
||||
}
|
||||
|
||||
//Code Ende
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static int Menu()
|
||||
{
|
||||
Console.WriteLine("***** MENÜ ******");
|
||||
Console.WriteLine("* Bitte wählen *");
|
||||
Console.WriteLine("*****************");
|
||||
Console.WriteLine("* 1. Kunde erstellen ");
|
||||
Console.WriteLine("* 2. Produkt erstellen ");
|
||||
Console.WriteLine("* 3. Rechnung erstellen ");
|
||||
Console.WriteLine("* 4. Produkt zu einer Rechnung hinzufügen ");
|
||||
Console.WriteLine("* 5. Produkt zu einer Rechnung löschen ");
|
||||
|
||||
while(true)
|
||||
{
|
||||
var key = Console.ReadKey().Key;
|
||||
if(key == ConsoleKey.D1) return 1;
|
||||
if(key == ConsoleKey.D2) return 2;
|
||||
if(key == ConsoleKey.D3) return 3;
|
||||
if(key == ConsoleKey.D4) return 4;
|
||||
if(key == ConsoleKey.D5) return 5;
|
||||
Console.WriteLine("Falsche Eingabe! Bitte nochmal versuchen:");
|
||||
}
|
||||
}
|
||||
|
||||
static Invoice? userSelectInvoice()
|
||||
{
|
||||
if(InvoiceList == null || InvoiceList.Count == 0) return null;
|
||||
|
||||
Console.WriteLine("Bitte wählen Sie eine Rechnung:");
|
||||
for(int i = 0; i < InvoiceList.Count; i++)
|
||||
Console.WriteLine(i + ".) " + InvoiceList[i]?.Cust?.Name);
|
||||
|
||||
string? userinput = Console.ReadLine();
|
||||
if(string.IsNullOrWhiteSpace(userinput)) return null;
|
||||
|
||||
int temp;
|
||||
if(!int.TryParse(userinput, out temp)) return null;
|
||||
|
||||
return InvoiceList[temp];
|
||||
}
|
||||
|
||||
//Ergänzen Sie diese Methode, sodass ein Anwender hier einen neuen Kunden erstellen kann. Dieser soll dann in die CustomerList gespeichert werden.
|
||||
static void CreateNewCustomerAndAddToList()
|
||||
{
|
||||
//Code Start
|
||||
Customer cust = new();
|
||||
int id = -1;
|
||||
Console.WriteLine("Bitte geben Sie eine individuelle ID an:");
|
||||
while(!int.TryParse(Console.ReadLine(), out id) || CustomerList.Any(k => k.ID == id));
|
||||
cust.ID = id;
|
||||
Console.WriteLine("Bitte geben Sie einen Kundennamen an:");
|
||||
cust.Name = Console.ReadLine();
|
||||
Console.WriteLine("Bitte geben Sie eine Kundenadresse an:");
|
||||
cust.Address = Console.ReadLine();
|
||||
|
||||
CustomerList.Add(cust);
|
||||
//Code Ende
|
||||
}
|
||||
//Ergänzen Sie diese Methode, sodass ein Anwender hier einen neues Produkt erstellen kann. Dieser soll dann in die ProductList gespeichert werden.
|
||||
static void CreateNewProductAndAddToList()
|
||||
{
|
||||
//Code Start
|
||||
Product prod = new();
|
||||
Console.WriteLine("Bitte geben Sie einen Namen an:");
|
||||
prod.Name = Console.ReadLine();
|
||||
Console.WriteLine("Bitte geben Sie einen Preis ein:");
|
||||
decimal temp = -1;
|
||||
while(!decimal.TryParse(Console.ReadLine(), out temp));
|
||||
prod.Price = temp;
|
||||
ProductList.Add(prod);
|
||||
|
||||
//Code Ende
|
||||
}
|
||||
@ -39,18 +118,47 @@ namespace Exercises_C_Sharp.E28_Classes
|
||||
static void CreateNewInvoiceAndAddToList()
|
||||
{
|
||||
//Code Start
|
||||
for(int i = 0; i < CustomerList.Count; i++)
|
||||
Console.WriteLine(i + ".) " + CustomerList[i].Name);
|
||||
Console.WriteLine("Bitte wählen Sie einen Kunden aus:");
|
||||
int temp = -1;
|
||||
while(!int.TryParse(Console.ReadLine(), out temp) || temp < 0 || temp >= CustomerList.Count);
|
||||
|
||||
InvoiceList.Add(new(){ Cust = CustomerList[temp]});
|
||||
|
||||
//Code Ende
|
||||
}
|
||||
//Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt zu einer Rechnung hinzufügen kann.
|
||||
static void AddElementToInvoice(Invoice inv)
|
||||
{
|
||||
|
||||
Item item = new();
|
||||
item.Product = GetProductFromUser();
|
||||
Console.WriteLine("Bitte geben Sie eine Menge an:");
|
||||
int temp = -1;
|
||||
while(!int.TryParse(Console.ReadLine(), out temp) || temp < 1);
|
||||
item.Amount = temp;
|
||||
inv.Items.Add(item);
|
||||
}
|
||||
//Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt von einer Rechnung löschen kann.
|
||||
static void DeleteElementToInvoice(Invoice inv)
|
||||
{
|
||||
|
||||
for(int i = 0; i < inv.Items.Count; i++)
|
||||
Console.WriteLine(i + ".) " + inv.Items[i]?.Product?.Name + " - " + inv.Items[i]?.Product?.Price);
|
||||
int temp = -1;
|
||||
while(!int.TryParse(Console.ReadLine(), out temp) || temp < 0 || temp >= inv.Items.Count);
|
||||
|
||||
inv.Items.RemoveAt(temp);
|
||||
}
|
||||
|
||||
static Product GetProductFromUser()
|
||||
{
|
||||
for(int i = 0; i < ProductList.Count; i++)
|
||||
Console.WriteLine(i + ".) " + ProductList[i].Name);
|
||||
Console.WriteLine("Bitte wählen Sie ein Product aus:");
|
||||
int temp = -1;
|
||||
while(!int.TryParse(Console.ReadLine(), out temp) || temp < 0 || temp >= ProductList.Count);
|
||||
|
||||
return ProductList[temp];
|
||||
}
|
||||
}
|
||||
class Product
|
||||
|
Loading…
Reference in New Issue
Block a user