package LibrarySystem.UI; import LibrarySystem.domain.benutzern.*; import LibrarySystem.facade.BibliothekSystem; import java.util.Scanner; public class UI { private BibliothekSystem system; private Scanner scanner; public UI(BibliothekSystem system) { this.system = system; this.scanner = new Scanner(System.in); } public void starten() { while (true) { System.out.println("Willkommen in der Bibliothek!\n"); System.out.println("1. Anmelden"); System.out.println("2. Medien durchsuchen"); System.out.println("3. Ausleihen eines Mediums"); System.out.println("4. Rückgabe eines Mediums"); System.out.println("5. Zeige ausgeliehene Medien und Gebühren"); System.out.println("6. Verlängern der Leihfrist"); System.out.println("7. Admin-Login (Überfällige Gebühren verbuchen)"); System.out.println("0. Beenden\n"); System.out.print("Bitte wählen Sie eine Option: "); int auswahl = scanner.nextInt(); scanner.nextLine(); switch (auswahl) { case 1 -> anmelden(); case 2 -> durchsuchenMedien(); case 3 -> ausleihenMedium(); case 4 -> rueckgabeMedium(); case 5 -> zeigeAusgelieheneMedienUndGebuehren(); case 6 -> verlaengernLeihfrist(); case 7 -> adminLogin(); case 0 -> { System.out.println("Auf Wiedersehen!"); return; } default -> System.out.println("Ungültige Auswahl, bitte erneut versuchen."); } } } //1. Anmelden private void anmelden() { System.out.print("Bitte geben Sie Ihre Kartennummer ein: "); String kartennummer = scanner.nextLine(); Benutzer benutzer = system.anmelden(kartennummer); if (benutzer != null) { System.out.println("Willkommen! Erfolgreich angemeldet als: " + benutzer.getName()); } else { System.out.println("Flasche Kartennummer. Bitte erneut versuchen!"); } } //2. Medien durchsuchen private void durchsuchenMedien() { System.out.println("Durchsuchen der Medien: (bitte nur Titel und Medienart eingeben)"); System.out.println("Titel: "); String titel = scanner.nextLine(); System.out.println("Medienart: "); String medienart = scanner.nextLine(); system.durchsuchenMedien(titel, medienart); } //3. Ausleihe eines Mediums private void ausleihenMedium() { System.out.println("Bitte melden Sie sich mit der Kartennummer ein: "); String kartennummer = scanner.nextLine(); System.out.print("Bitte geben Sie die ID des Mediums ein, das Sie ausleihen möchten: "); String mediumID = scanner.nextLine(); system.ausleiheMedium(kartennummer, mediumID); } //4. Rückgabe eines Mediums private void rueckgabeMedium() { System.out.print("Bitte geben Sie die ID des Mediums ein, das Sie zurückgeben möchten: "); String mediumId = scanner.nextLine(); system.rueckgabeMedium(mediumId); } //5. Zeige ausgeliehene Medien und Gebühren private void zeigeAusgelieheneMedienUndGebuehren() { System.out.print("Bitte geben Sie Ihre Kartennummer ein: "); String kartennummer = scanner.nextLine(); Benutzer benutzer = system.anmelden(kartennummer); if (benutzer != null) { system.zeigeGebuehrenkonto(kartennummer); benutzer.anzeigenAusleihen(); } } //6. Verlängern der Leihfrist private void verlaengernLeihfrist() { System.out.print("Bitte geben Sie die ID des Mediums ein, dessen Leihfrist Sie verlängern möchten: "); String mediumId = scanner.nextLine(); System.out.println("Leihfrist für Medium mit ID " + mediumId + " verlängert."); // Logik zur Verlängerung der Leihfrist hinzufügen } //7. Admin-Login private void adminLogin() { System.out.print("Bitte geben Sie Ihre Admin-Kartennummer ein: "); String kartennummer = scanner.nextLine(); Benutzer admin = system.anmelden(kartennummer); if (admin instanceof Admin) { System.out.println("Admin erfolgreich eingeloggt."); System.out.print("Bitte geben Sie die Kartennummer des Benutzers ein, dessen Gebühren Sie verbuchen möchten: "); String benutzerKartennummer = scanner.nextLine(); Benutzer benutzer = system.anmelden(benutzerKartennummer); if (benutzer != null) { ((Admin) admin).bestaetigeGebuehrenzahlung(benutzer); } } else { System.out.println("Ungültige Admin-Kartennummer."); } } }