public IActionResult Continue() { var sessionCookieData = Request.Cookies.Get <SessionCookieData>(Strings.SessionDataCookieName, _dataProtectionProvider); if (sessionCookieData != null) { var gameSession = _gameSessionRepository.GetById(sessionCookieData.Id); if (gameSession.State == GameState.Passed || gameSession.State == GameState.Stopped) { return(BadRequest(new ErrorResponse(3, "Already passed or stopped this game session."))); } gameSession.State = GameState.Continued; _gameSessionRepository.Update(gameSession); sessionCookieData.GameState = GameState.Continued; Response.Cookies.Set(Strings.SessionDataCookieName, sessionCookieData, _dataProtectionProvider); } return(Ok()); }
private async Task <GameSession> GetById(long id) { GameSession session = await _sessionRepository.GetById(id); return(session); }