Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
        }