Admin Funktion hinzugefügt

Feature-LibraryService
elarturo 2024-11-18 23:05:44 +01:00
parent f5c637dd9d
commit 4bf51626be
1 changed files with 84 additions and 13 deletions

View File

@ -1,24 +1,95 @@
package ServiceLayer;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import DomainLayer.LibraryItem;
import DomainLayer.User;
import DomainLayer.*;
public class LibraryService {
private Map<String, LibraryItem> items; // ID -> Medien
private Map<String, User> users; // Kartennummer -> Benutzer
private List<Medium> mediaList = new ArrayList<>();
private List<User> userList = new ArrayList<>();
private Admin admin; // Ein Adminnutzer
public void borrowItem(String itemId, String userId) {
// Prüfen, ob verfügbar, und Ausleihe durchführen
// Administrator hinzufügen (fest codiert)
public LibraryService() {
mediaList = new ArrayList<>();
userList = new ArrayList<>();
// Hardcodierter Admin
admin = new Admin("001", "Bibliotheks Admin");
userList.add(admin); // Admin wird zur Benutzerliste hinzugefügt
}
public Admin getAdmin() {
return admin;
}
public void displayCatalog() {
System.out.println("Medienkatalog:");
for (Medium medium : mediaList) {
String status = medium.isBorrowed() ? "Ausgeliehen bis: " + medium.getDueDate() : "Verfügbar";
System.out.println("Titel: " + medium.getTitle() + ", Autor: " + medium.getAuthor() + ", Status: " + status);
}
}
public void returnItem(String itemId) {
// Rückgabe-Logik und Gebührenberechnung
}
public List<Medium> searchMedia(String query, boolean filterBorrowed, String mediaType) {
return mediaList.stream().filter(medium -> medium.getTitle().toLowerCase().startsWith(query.toLowerCase())) // Filter
// nach
// Titel
.filter(medium -> !filterBorrowed || !medium.isBorrowed()) // Optionaler Filter nach Ausleihstatus
.filter(medium -> mediaType.isEmpty() || medium.getClass().getSimpleName().equals(mediaType)) // Optionaler
// Filter
// nach
// Medienart
.collect(Collectors.toList());
}
public void initializeMedia() {
// Beispielmedien
addMedium(new Book("B001", "Harry Potter und der Stein der Weisen", "1997"));
addMedium(new DVD("D001", "Inception", "2010"));
addMedium(new CD("C001", "Michael Jackson - Thriller", "1982"));
addMedium(new BoardGame("BG001", "Monopoly", "1935"));
addMedium(new VideoGame("VG001", "The Last of Us", "2013"));
}
public List<LibraryItem> searchItems(String query) {
// Suchfunktion für Medien
}
// Medien hinzufügen
public void addMedium(Medium medium) {
mediaList.add(medium);
}
// Alle Medien abrufen
public List<Medium> getAllMedia() {
return mediaList;
}
// Medium anhand der ID suchen
public Medium findMediumById(String mediumId) {
for (Medium medium : mediaList) {
if (medium.getId().equals(mediumId)) {
return medium;
}
}
return null; // Medium nicht gefunden
}
// Benutzer hinzufügen
public void addUser(User user) {
userList.add(user);
}
// Benutzer anhand der ID suchen
public User findUserById(String userId) {
for (User user : userList) {
if (user.getId().equals(userId)) {
return user;
}
}
return null; // Benutzer nicht gefunden
}
// Alle Benutzer abrufen
public List<User> getAllUsers() {
return userList;
}
}