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!"); 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 Gegenstände 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"); System.out.print("Bitte wählen Sie eine Option: "); int auswahl = scanner.nextInt(); scanner.nextLine(); switch (auswahl) { case 1: anmelden(); break; case 2: durchsuchenMedien(); break; case 3: ausleihenMedium(); break; case 4: rueckgabeMedium(); break; case 5: zeigeAusgelieheneMedienUndGebuehren(); break; case 6: verlaengernLeihfrist(); break; case 7: adminLogin(); break; case 0: System.out.println("Auf Wiedersehen!"); return; default: System.out.println("Ungültige Auswahl, bitte erneut versuchen."); } } } 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("Erfolgreich angemeldet als: " + benutzer.getName()); } } 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); } private void ausleihenMedium() { System.out.print("Bitte geben Sie die ID des Mediums ein, das Sie ausleihen möchten: "); String mediumId = scanner.nextLine(); // Beispiel: Medium finden und ausleihen System.out.println("Medium mit ID " + mediumId + " ausgeliehen."); } private void rueckgabeMedium() { System.out.print("Bitte geben Sie die ID des Mediums ein, das Sie zurückgeben möchten: "); String mediumId = scanner.nextLine(); // Beispiel: Medium zurückgeben System.out.println("Medium mit ID " + mediumId + " zurückgegeben."); } 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.zeigeGebuehren(benutzer); } } 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 } 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."); } } }