Beispiel #1
0
        public async Task <IActionResult> UpdatePlayerAndResult([FromBody] UpdatePlayerResultDto updatePlayerResultDto)
        {
            Log.Logger.Information($"Updating {updatePlayerResultDto.Name} with Result {updatePlayerResultDto.Score} in Category: {updatePlayerResultDto.Category}");

            if (updatePlayerResultDto == null)
            {
                return(BadRequest());
            }

            if (!(updatePlayerResultDto.Score >= 0))
            {
                ModelState.AddModelError(nameof(UpdateResultDto), "Score needs to be a number of value 0 or higher.");
            }

            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            var player             = GetPlayerFromUpdatePlayerResultDto(updatePlayerResultDto);
            var playerUpdateResult = await _playerRepository.Update(player);

            Log.Logger.Information($"{player.Name} updated");

            var result            = GetResultFromUpdatePlayerResultDto(updatePlayerResultDto);
            var scoreUpdateResult = await _resultRepository.Update(result);

            Log.Logger.Information($"Result with score {result.Score} updated");
            Log.Logger.Information($"{player.Name} successfully updated with result {result.Score} in Category: {result.Category}");

            return(NoContent());
        }
Beispiel #2
0
        // Returns a single resultDto from UpdatePlayerResultDto
        private UpdateResultDto GetResultFromUpdatePlayerResultDto(UpdatePlayerResultDto result)
        {
            var updateResultDto = new UpdateResultDto {
                Name = result.Name, Category = result.Category, Score = result.Score
            };

            return(updateResultDto);
        }
Beispiel #3
0
        // Returns a single playerDto from UpdatePlayerResultDto
        private UpdatePlayerDto GetPlayerFromUpdatePlayerResultDto(UpdatePlayerResultDto player)
        {
            var updatePlayerDto = new UpdatePlayerDto {
                Name = player.Name
            };

            return(updatePlayerDto);
        }