Пример #1
0
        public void AddEvent(GameEvent e)
        {
            if (e.OccuredAt == default(DateTime))
            {
                e.OccuredAt = _nextTime;
            }
            _nextTime = e.OccuredAt.AddMinutes(1);

            _result.AppendLine();
            _result.AppendLine($"Event {e.GetType().Name} {JsonConvert.SerializeObject(e, JsonSettings)}");
            var prevState = JToken.FromObject(_handler.CurrentState, Serializer);

            try
            {
                _handler.AddEvent(e);
            }
            catch (Exception ex)
            {
                _result.AppendLine($"Exception {ex.Message}");
            }

            var nextState = JToken.FromObject(_handler.CurrentState, Serializer);

            _result.Append("State ");
            DumpChange(prevState, nextState);
            _result.AppendLine();
        }
Пример #2
0
        private async Task <GameHandler> LoadGameHandler()
        {
            GameHandler _gameHandler = new GameHandler();

            foreach (var matchEvent in await _context.MatchEvents.Where(matchEvent => matchEvent.MatchId == _matchId).OrderBy(matchEvent => matchEvent.Version).ToArrayAsync())
            {
                _gameHandler.AddEvent(JsonConvert.DeserializeObject <GameEvent>(matchEvent.Event, new JsonSerializerSettings {
                    TypeNameHandling = TypeNameHandling.Objects
                }));
            }

            return(_gameHandler);
        }
Пример #3
0
 public Task AddEventAsync(GameEvent gameEvent)
 {
     _gameHandler.AddEvent(gameEvent);
     return(Task.FromResult(0));
 }