Bib1/fassade/Fassade.java

82 lines
2.8 KiB
Java

package fassade;
import backend.medium.Medien;
import backend.benutzer.*;
import java.time.LocalDate;
import java.util.List;
public class Fassade {
private final Verwaltung verwaltung;
private LocalDate aktuellesDatum;
// Konstruktor
public Fassade(Verwaltung verwaltung) {
this.verwaltung = verwaltung;
this.aktuellesDatum = LocalDate.now(); // Initiales Datum ist das heutige Datum
}
// Benutzer registrieren
public void registriereBenutzer(Benutzer benutzer) {
verwaltung.addBenutzer(benutzer); // Benutzer zur fassade.Verwaltung hinzufügen
}
// Benutzer anmelden
public Benutzer anmeldenBenutzer(int kundennummer) {
return verwaltung.benutzerListe.stream()
.filter(b -> b.getKundennummer() == kundennummer)
.findFirst()
.orElse(null); // Gibt null zurück, wenn Benutzer nicht gefunden wurde
}
// backend.medium.Medien durchsuchen
public List<Medien> durchsuchenMedien(String suchbegriff) {
// Rufe die Methode in der fassade.Verwaltung auf und übergebe die medienListe
return verwaltung.durchsuchenMedien(verwaltung.mediensListe, suchbegriff);
}
// backend.medium.Medien ausleihen
public void ausleihen(int medienId, Benutzer benutzer, LocalDate ausleihDatum, LocalDate rueckgabeDatum) {
Medien medien = verwaltung.mediensListe.stream()
.filter(m -> m.getId() == medienId)
.findFirst()
.orElse(null);
if (medien != null) {
verwaltung.addAL(medien, benutzer, ausleihDatum, rueckgabeDatum); // Leihe das Medium aus
} else {
System.out.println("backend.medium.Medien nicht gefunden.");
}
}
// backend.medium.Medien zurückgeben
public void rueckgabe(int medienId, Benutzer benutzer, LocalDate rueckgabeDatum) {
verwaltung.rueckgabe(medienId, benutzer, rueckgabeDatum); // Rückgabe des Mediums
}
// backend.medium.Medien verlängern
public void verlaengern(int medienId, Benutzer benutzer) {
Medien medien = verwaltung.mediensListe.stream()
.filter(m -> m.getId() == medienId)
.findFirst()
.orElse(null);
if (medien != null) {
verwaltung.verlängern(medien, benutzer); // Verlängere die Leihfrist
} else {
System.out.println("backend.medium.Medien nicht gefunden.");
}
}
// Zeit verschieben
public void zeitVerschieben(LocalDate neuesDatum) {
this.aktuellesDatum = neuesDatum; // Aktuelles Datum auf das neue Datum setzen
}
// Aktuelles Datum abrufen
public LocalDate getAktuellesDatum() {
return aktuellesDatum; // Gibt das aktuelle Datum zurück
}
}