public async Task <GameState> UpdateStateAsync(int?playerId, GameStateVm vm) { var state = await GetStateByIdAsync(playerId, vm.GameId); if (state == null) { return(null); } if (state.Timestamp > vm.Timestamp || state.FrameCount > vm.FrameCount) { return(state); } state.Timestamp = DateTime.UtcNow; state.Direction = vm.Direction; state.MapId = vm.MapId; state.MapX = vm.MapX; state.MapY = vm.MapY; state.MapXPrecise = vm.MapXPrecise; state.MapYPrecise = vm.MapYPrecise; state.FrameCount = vm.FrameCount; state.StepCount = vm.StepCount; state.BattleCount = vm.BattleCount; _dbcontext.Update(state); _dbcontext.SaveChanges(); return(state); }
public async Task <GameStateVm> UpdateState([FromBody] GameStateVm vm) { if (vm == null) { return(new GameStateVm("No state supplied")); } return(await _gameRepository.UpdateStateVmAsync(PlayerId, vm)); }
public async Task <GameStateVm> UpdateStateVmAsync(int?playerId, GameStateVm vm) { var state = await UpdateStateAsync(playerId, vm); if (state == null) { return(new GameStateVm($"Can't update state with game id #{vm.GameId}")); } return(new GameStateVm(state)); }