Ejemplo n.º 1
0
        public async Task <IActionResult> UpdateWorkout(int rowerId, int id, WorkoutForUpdateDto workoutForUpdate)
        {
            try
            {
                if (rowerId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
                {
                    return(Unauthorized());
                }

                var workoutFromRepo = await _repo.GetSingleWorkout(rowerId, id);

                _mapper.Map(workoutForUpdate, workoutFromRepo);

                if (await _repo.SaveAll())
                {
                    return(NoContent());
                }

                throw new Exception($"Updating workout {id} for rower {rowerId} failed on save");
            }
            catch (Exception ex)
            {
                _logger.LogError($"Failed to update workout {id}: {ex}");
            }
            return(BadRequest($"Failed to update workout"));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult <WorkoutForReturnDetailedDto> > UpdateWorkoutPutAsync(int id, [FromBody] WorkoutForUpdateDto updateDto)
        {
            var workout = await workoutRepository.GetByIdAsync(id);

            mapper.Map(updateDto, workout);

            workout.LastModifiedDate = DateTimeOffset.UtcNow;

            var saveResult = await workoutRepository.SaveAllAsync();

            if (!saveResult)
            {
                return(BadRequest(new ProblemDetailsWithErrors("Could not apply changes.", 400, Request)));
            }

            var workoutToReturn = mapper.Map <WorkoutForReturnDetailedDto>(workout);

            return(Ok(workoutToReturn));
        }