private void LoadLevelStars(Dictionary <string, Level[]> levelDTO, Dictionary <string, Level_Info.Level[]> levels) { CheckForInitialisation(); var events = eventReader.GetEvents(); foreach (var chapter in levels) { var eventsForChapter = events.ContainsKey(chapter.Key) ? events[chapter.Key] : null; foreach (var level in chapter.Value) { if (level == null) { continue; } var eventsForLevel = eventsForChapter?.FirstOrDefault(x => x.LevelNumber == level.LevelNumber); var dto = levelDTO[chapter.Key].FirstOrDefault(x => x.LevelNumber == level.LevelNumber); level.Star1Progress = LevelStarFactory.GetLevelStar(1, dto.Star1, eventsForLevel?.Star1); level.Star2Progress = LevelStarFactory.GetLevelStar(2, dto.Star2, eventsForLevel?.Star2); level.Star3Progress = LevelStarFactory.GetLevelStar(3, dto.Star3, eventsForLevel?.Star3); } } }
public void ConsumeNextEventBatch([NotNull] Action <SqlEvent[]> processEventsAction) { var lastProcessedEventId = eventReaderPointerStorage.GetLastProcessedEventId(); var newEvents = eventReader.GetEvents(lastProcessedEventId); if (!newEvents.Any()) { return; } processEventsAction(newEvents); eventReaderPointerStorage.UpdateLastProcessedEventId(newEvents.Last().Id); }