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)); }