コード例 #1
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)));
        }
コード例 #2
0
 public async Task <long> RemoveScore(ScoreMongoModel score)
 {
     return(await DeleteOneAsync <ScoreMongoModel, string>(score).ConfigureAwait(false));
 }
コード例 #3
0
 public async Task <bool> UpdateScore(ScoreMongoModel score)
 {
     return(await UpdateOneAsync <ScoreMongoModel, string>(score).ConfigureAwait(false));
 }
コード例 #4
0
 public async Task AddScore(ScoreMongoModel score)
 {
     await AddOneAsync <ScoreMongoModel, string>(score);
 }