コード例 #1
0
        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 });
        }
コード例 #2
0
ファイル: GrpcServer.cs プロジェクト: mesziman/uni
        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);
        }
コード例 #3
0
        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!"));
        }
コード例 #4
0
        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);
        }