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(); }
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); }
public Task AddEventAsync(GameEvent gameEvent) { _gameHandler.AddEvent(gameEvent); return(Task.FromResult(0)); }