main
CPlaiz 2025-12-13 17:19:25 +01:00
parent 26bce09653
commit dd70788226
1 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,56 @@
package org.example;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
public class TUI {
Shop shop;
boolean exit = false;
public TUI(Shop shop) {
this.shop = shop;
}
public void processInput(String input) {
String[] tokens = input.split("\\s+");
String command = tokens[0];
switch (command) {
case "exit" -> exit();
case "checkout" -> checkout();
case "list" -> listProducts(shop.products);
case "cart" -> listCart(shop.getCart());
case "add" -> shop.addProductToCart(shop.getProductById(Integer.parseInt(tokens[1])));
case "remove" -> shop.removeProductFromCart(shop.getProductById(Integer.parseInt(tokens[1])));
case "set" ->
shop.setProductQuantityInCart(shop.getProductById(Integer.parseInt(tokens[1])), Integer.parseInt(tokens[2]));
default -> System.out.println("Unbekannter Befehl: " + input);
}
}
public void exit() {
exit = true;
}
public void listProducts(HashMap<Product, Integer> productStock) {
productStock.keySet().stream().sorted(Comparator.comparingInt(p -> p.id)).forEach(product -> {
System.out.println("(" + product.id + ") " + product.name + ", Preis: " + product.price + ", Gewicht: " + product.weight + ", Auf Lager: " + productStock.get(product));
});
}
public void listCart(HashMap<Product, Integer> cardContents) {
cardContents.forEach((product, count) -> {
System.out.println("(" + product.id + ") " + product.name + ", Preis: " + product.price + ", Gewicht: " + product.weight + ", Anzahl: " + count);
});
}
public void checkout() {
Order order = shop.checkout();
System.out.println("MwSt.: " + order.calculateTotalVat() + "€");
System.out.println("Versand: " + order.calculateShippingCost() + "€");
System.out.println("Brutto: " + order.calculateTotalPriceWithVat() + "€");
}
}