PR2-Testate/LibrarySystem/UI/UI.java

133 lines
4.9 KiB
Java

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.");
}
}
}