public async Task UpdateScore(string player, ScoresRequest payload) { if (string.IsNullOrWhiteSpace(player)) { throw new ArgumentNullException($"{nameof(player)} is required"); } if (payload == null) { throw new ArgumentNullException($"{nameof(payload)} is required"); } await _scoresRepository.UpdateScore(new ScoreModel { Player = player, Score = payload.Score }); }
public override async Task GetScores(ScoresRequest request, IServerStreamWriter <ScoreResponse> responseStream, ServerCallContext context) { try { _auth.GetClient(context); } catch (GrpcError e) { await responseStream.WriteAsync(new ScoreResponse { ErrorNo = e.ErrorNumber }); return; } var scores = _service.GetScores(); var protoScores = scores.Select(score => new ScoreResponse { Score = score.ToProto() }); await responseStream.WriteAllAsync(protoScores); }
public async Task <IActionResult> UpdatePlayerScore([FromRoute] string player, [FromBody] ScoresRequest payload) { if (string.IsNullOrWhiteSpace(player) || payload == null) { return(BadRequest()); } try { var score = await _scoresRepository.GetScoreByPlayer(player); if (score == null) { return(BadRequest("Player does not exist!")); } await _scoresService.UpdateScore(player, payload); return(NoContent()); } catch (Exception exception) { _logger.LogError(exception, $"Failed to {nameof(UpdatePlayerScore)} with payload {JsonSerializer.Serialize(payload)}"); } return(StatusCode((int)HttpStatusCode.InternalServerError, "Oops something went wrong!")); }
public async Task CreateScore_When_Request_Is_Invalid_Then_Return_BadRequest(string player, ScoresRequest payload) { var controller = new ScoresController(_mockLogger, _mockScoresService.Object, _mockScoresRepository.Object); var expected = new BadRequestResult(); var actual = await controller.UpdatePlayerScore(player, payload); actual.Should().BeEquivalentTo(expected); }