public static void Init() { ScoringManager.m_diamondPrizes = new LogicArrayList <int>(); ScoringManager.m_diamondPrizes.Add(50000); ScoringManager.m_diamondPrizes.Add(30000); ScoringManager.m_diamondPrizes.Add(15000); if (ServerCore.Id == 0) { DateTime seasonTime = DateTime.UtcNow.AddMonths(1); DateTime lastSeasonTime = seasonTime.AddMonths(-1); ScoringManager.m_currentSeason = ScoringManager.LoadOrCreateSeason(new LogicLong(seasonTime.Year, seasonTime.Month)); ScoringManager.m_lastSeason = ScoringManager.LoadSeason(new LogicLong(lastSeasonTime.Year, lastSeasonTime.Month)); ScoringManager.m_thread = new Thread(ScoringManager.Update); ScoringManager.m_thread.Start(); } }
private static ScoringSeason LoadOrCreateSeason(LogicLong id) { ScoringSeason scoringSeason = ScoringManager.LoadSeason(id); if (scoringSeason == null) { IOperationResult <string> result = ServerScoring.SeasonDatabase.Insert(id, CouchbaseDocument.Save(scoringSeason = new ScoringSeason(id))).Result; if (!result.Success) { throw result.Exception; } scoringSeason.NextCheckTime = DateTime.UtcNow.Date.AddDays(1); scoringSeason.Init(); } return(scoringSeason); }