mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-28 00:16:46 +00:00
Added storeLeaderboardGroup() to MongoObjectFactory
This commit is contained in:
+3
@@ -6,6 +6,7 @@ import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
|
||||
import com.sap.sailing.domain.tracking.TrackedEvent;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
@@ -41,5 +42,7 @@ public interface MongoObjectFactory {
|
||||
void renameLeaderboard(String oldName, String newName);
|
||||
|
||||
void storeRaceIdentifier(RaceIdentifier raceIdentifier, DBObject dbObject);
|
||||
|
||||
void storeLeaderboardGroup(LeaderboardGroup leaderboardGroup);
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
package com.sap.sailing.domain.persistence.impl;
|
||||
|
||||
public enum CollectionNames {
|
||||
WIND_TRACKS, LEADERBOARDS;
|
||||
WIND_TRACKS, LEADERBOARDS, LEADERBOARD_GROUPS;
|
||||
}
|
||||
|
||||
+3
-1
@@ -13,6 +13,8 @@ public enum FieldNames {
|
||||
|
||||
// leaderboard:
|
||||
LEADERBOARD_NAME, LEADERBOARD_COLUMNS, LEADERBOARD_COLUMN_NAME, LEADERBOARD_COMPETITOR_DISPLAY_NAMES, LEADERBOARD_IS_MEDAL_RACE_COLUMN,
|
||||
LEADERBOARD_CARRIED_POINTS, LEADERBOARD_SCORE_CORRECTIONS, LEADERBOARD_DISCARDING_THRESHOLDS, LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON, LEADERBOARD_CORRECTED_SCORE
|
||||
LEADERBOARD_CARRIED_POINTS, LEADERBOARD_SCORE_CORRECTIONS, LEADERBOARD_DISCARDING_THRESHOLDS, LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON, LEADERBOARD_CORRECTED_SCORE,
|
||||
|
||||
// leaderboard group
|
||||
LEADERBOARD_GROUP_NAME, LEADERBOARD_GROUP_DESCRIPTION, LEADERBOARD_GROUP_LEADERBOARDS
|
||||
}
|
||||
|
||||
+25
@@ -7,6 +7,8 @@ import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.DB;
|
||||
import com.mongodb.DBCollection;
|
||||
import com.mongodb.DBObject;
|
||||
import com.mongodb.DBRef;
|
||||
import com.mongodb.DBRefBase;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
@@ -17,6 +19,7 @@ import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.RaceInLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.ScoreCorrection.MaxPointsReason;
|
||||
import com.sap.sailing.domain.leaderboard.SettableScoreCorrection;
|
||||
@@ -184,5 +187,27 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
|
||||
BasicDBObject renameUpdate = new BasicDBObject("$set", new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), newName));
|
||||
leaderboardCollection.update(query, renameUpdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storeLeaderboardGroup(LeaderboardGroup leaderboardGroup) {
|
||||
DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name());
|
||||
DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name());
|
||||
|
||||
BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_GROUP_NAME.name(), leaderboardGroup.getName());
|
||||
|
||||
BasicDBObject result = new BasicDBObject();
|
||||
result.put(FieldNames.LEADERBOARD_GROUP_NAME.name(), leaderboardGroup.getName());
|
||||
result.put(FieldNames.LEADERBOARD_GROUP_DESCRIPTION.name(), leaderboardGroup.getDescription());
|
||||
BasicDBList dbLeaderboardRefs = new BasicDBList();
|
||||
for (Leaderboard leaderboard : leaderboardGroup.getLeaderboards()) {
|
||||
BasicDBObject leaderboardQuery = new BasicDBObject(FieldNames.LEADERBOARD_NAME.name(), leaderboard.getName());
|
||||
DBObject dbLeaderboard = leaderboardCollection.find(leaderboardQuery).getQuery();
|
||||
DBRef dbLeaderboardRef = new DBRef(database, dbLeaderboard);
|
||||
dbLeaderboardRefs.add(dbLeaderboardRef);
|
||||
}
|
||||
result.put(FieldNames.LEADERBOARD_GROUP_LEADERBOARDS.name(), dbLeaderboardRefs);
|
||||
|
||||
leaderboardGroupCollection.update(query, result, true, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user