Esempio n. 1
0
        public async Task <IActionResult> PostRoutine([FromRoute] int?userId, [FromBody] WorkoutRoutineDTO routineDto)
        {
            if (userId == null)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            if (!await _repository.UserExists(userId))
            {
                return(NotFound("User Doesn't Exist"));
            }

            routineDto.WTUserID = userId;
            var routineEntity = Mapper.Map <WorkoutRoutine>(routineDto);
            var result        = await _repository.AddRoutineForUser(userId, routineEntity);

            if (result == false)
            {
                return(BadRequest("Add Failed for Routine..."));
            }

            if (routineEntity.ImageBytes != null && routineEntity.ImageBytes.Length != 0)
            {
                var imageResult = await SaveRoutineImage(routineEntity);
            }

            var routineToReturn = Mapper.Map <WorkoutRoutineDTO>(routineEntity);

            return(CreatedAtRoute(
                       routeName: "GetRoutine",
                       routeValues: new
            {
                userId = userId,
                routineId = routineToReturn.ID
            },
                       value: routineToReturn));
        }