From 62a35e30c7746a897eeebbce5c6550cd5ababe7d Mon Sep 17 00:00:00 2001 From: vysitor Date: Sun, 23 Mar 2025 17:50:33 +0100 Subject: [PATCH] small enhancement --- .../gruppe_05_1/database/MongoPprUtils.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java b/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java index dd6d638..3bc5cae 100644 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java +++ b/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java @@ -626,6 +626,44 @@ public class MongoPprUtils { return result; } + /** + * Holt die Redeinformationen aus der Datenbank, die wichtig sind, um eine Liste der Reden eines Parlamentariers in HTML darzustellen + * @param speakerId + * @return + */ + public static List getSpeechOverviewBySpeaker(Integer speakerId) { + + List result = new ArrayList<>(); + + MongoCollection collection = getSpeechCollection(); + + Document projection = new Document("speechKey", 1) + .append("speakerId", 1) + .append("dateTimeString", 1) + .append("speakerName", 1) + .append("fraction", 1) + .append("agendaTitel", 1); + + Bson filter = Filters.eq("speakerId", speakerId); + + List docs = collection.find(filter) + .projection(projection) + .sort(Sorts.descending("dateTime")) + .into(new ArrayList<>()); + + for (Document doc : docs) { + result.add(new SpeechOverview( + doc.getString("speechKey"), + doc.getInteger("speakerId"), + doc.getString("dateTimeString"), + doc.getString("speakerName"), + doc.getString("fraction"), + doc.getString("agendaTitel") + )); + } + + return result; + } /** * Füge Rede-Metadaten (welche in der Session-Collection stehen) der Rede hinzu.