コード例 #1
0
        public IActionResult CreateScoreForUser(string userId, [FromBody] ScoreCreateModel score)
        {
            if (score == null)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }
            if (userId == "self")
            {
                userId = _memoryRepository.GetUserId(this.User);
            }

            var userEntity = _memoryRepository.GetUser(userId).Result;

            if (userEntity == null)
            {
                return(NotFound());
            }
            var scoreEntity = _mapper.Map <GameScore>(score);

            _memoryRepository.CreateScoreForUser(userEntity, scoreEntity);
            if (!_memoryRepository.Save())
            {
                throw new Exception($"Creating a score for user {userEntity.Id} failed on save.");
            }
            var scoreModel = _mapper.Map <ScoreModel>(scoreEntity);

            return(CreatedAtRoute("GetScoreForUser",
                                  new { userId = userId, id = scoreModel.Id },
                                  scoreModel));
        }