コード例 #1
0
        public async Task <ActionResult> UpdateScore([FromBody] UpdateScoreRequest request)
        {
            if (request.Score < 0 || request.Score > 5)
            {
                return(BadRequest("Score is out of range"));
            }

            if (string.IsNullOrWhiteSpace(request.Player))
            {
                return(BadRequest("Player must be provided"));
            }

            var command = new UpdateScoreCommand
            {
                Score  = request.Score,
                Player = request.Player
            };

            var result = await _mediator.Send(command);

            if (!result.Success)
            {
                if (result.ResponseCode == 404)
                {
                    return(NotFound("Player not found"));
                }

                return(StatusCode(500, "Unable to fulfill request at this time"));
            }

            return(StatusCode(204));
        }
コード例 #2
0
        //[ProducesResponseType((int)HttpStatusCode.Created, Type = typeof(CreatedAtActionResult))]
        //[SwaggerOperation("Post")]
        public async Task <IActionResult> UpdateScore([FromBody] UpdateScoreRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(await Task.FromResult(BadRequest(ModelState)));
            }

            var score = await this.ScoreDbRepository.GetScore(request.Score.UserId).ConfigureAwait(false);

            var scoreDto = this.Mapper.Map <ScoreDto>(score);

            if (scoreDto != null && scoreDto.Score > request.Score.Score)
            {
                return(await Task.FromResult(BadRequest(new { Error = "Higher score already  exists!" })));
            }

            var scoreModel = new ScoreMongoModel
            {
                Id       = request.Score.UserId,
                Score    = request.Score.Score,
                UserName = request.Score.UserName
            };

            if (score == null)
            {
                await this.ScoreDbRepository.AddScore(scoreModel);
            }
            else
            {
                await this.ScoreDbRepository.UpdateScore(scoreModel).ConfigureAwait(false);
            }

            return(await Task.FromResult(Created("/scores/{userId}", request)));
        }
        public void RequestUpdateScore(Action <Client, UpdateScoreResponse> callback)
        {
            UpdateScoreRequest request = new UpdateScoreRequest();

            AddCallback(callback, request);
            SendMessage(request);
        }
        public void UpdateScoreRequestHandler(UpdateScoreRequest request)
        {
            UpdateScoreResponse response = new UpdateScoreResponse(request,
                                                                   this.InGameProperties.WinGame,
                                                                   this.OtherSideReceiver.InGameProperties.WinGame);

            this.SendMessage(response);
        }
コード例 #5
0
 public async Task <IActionResult> UpdateScore(string username, [FromBody] UpdateScoreRequest request)
 {
     if (await _command.UpdateUserScore(username, request.Score))
     {
         return(Ok());
     }
     return(NotFound());
 }
コード例 #6
0
        public ActionResult UpdateScore([FromBody] UpdateScoreRequest request)
        {
            if (string.IsNullOrEmpty(request.GameId))
            {
                return(new NotFoundResult());
            }

            var foundGame = GameStates.Cache.TryGetValue(request.GameId, out GameState game);

            if (!foundGame)
            {
                return(new NotFoundResult());
            }

            game.UpdateScore(request.Team, request.Increment);

            return(Ok());
        }
コード例 #7
0
 public UpdateScoreResponse(UpdateScoreRequest request, int socre_1, int score_2)
     : base(request)
 {
     Score_1 = socre_1;
     Score_2 = score_2;
 }
コード例 #8
0
 public UpdateScoreResponse(UpdateScoreRequest request)
     : base(request)
 {
 }