public async void CreateWorkoutTest() { try { var athleteWorkout = new AthleteWorkoutDto() { Id = 0, Name = "Test #1 workout", Session = null, SessionId = 1, Topic = "Lower Body", SubTopic = "Body Core", Category = "Strength", Exercises = new List <AthleteExerciseDto>() { new AthleteExerciseDto() { Id = 1, Category = "Strength", Description = "Work on legs.", Duration = 90, ImageUrl = "http://exercises.youtrain.me.s3.amazonaws.com/wp-content/uploads/Dumbbell-Standing-Step-Up-622x485.png", IsDone = false, IsModified = false, Name = "Bench Press", Note = new NoteDto() { Id = 0, Text = "Rest 10 seconds", Created = DateTime.Parse("2017-03-03") }, TrainingLoad = "100", Sets = new AthleteExerciseSetDto() { Id = 0, Order = 1, RecoveryTimeInMin = 20, Reps = 15, Sets = 4, Weight = 100 } } } }; var result = await _service.CreateWorkout(athleteWorkout); Assert.NotEqual(false, result); } catch (System.Exception ex) { throw; } }
public async Task <IActionResult> WorkoutCreate( [HttpTrigger(AuthorizationLevel.User, "post", Route = "workouts")] [RequestBodyType(typeof(WorkoutBody), "The workout to create")] HttpRequest req, [SwaggerIgnore] ClaimsPrincipal user) { // check if user has admin rights if (!user.IsInRole(UserType.Admin.ToString())) { return(ForbiddenObjectResult.Create(new ErrorResponse(ErrorCode.UNAUTHORIZED_ROLE_NO_PERMISSIONS))); } // deserialize request WorkoutBody workoutBody; try { workoutBody = await SerializationUtil.Deserialize <WorkoutBody>(req.Body); } catch (JsonException e) { return(new BadRequestObjectResult(new ErrorResponse(400, e.Message))); } // check if all fields are filled in if (workoutBody.Name == null || workoutBody.Type == null || workoutBody.Exercises == null || workoutBody.Exercises.Count == 0) { return(new BadRequestObjectResult(new ErrorResponse(ErrorCode.INVALID_REQUEST_BODY))); } // check if given exercises exist foreach (int exerciseId in workoutBody.Exercises) { if (!await exerciseService.Exists(exerciseId)) { return(new BadRequestObjectResult(new ErrorResponse(ErrorCode.INVALID_EXERCISE_PROVIDED))); } } // create new workout int workoutId = await workoutService.CreateWorkout(workoutBody); // get the created location WorkoutResponse createdWorkout = await workoutService.GetWorkout(workoutId); return(new OkObjectResult(createdWorkout)); }
public async Task <IActionResult> CreateAthleteWorkout([FromBody, Required] AthleteWorkoutDto workoutDto) { try { if (workoutDto == null) { return(BadRequest()); } if (await _service.CreateWorkout(workoutDto)) { return(CreatedAtRoute("default", true)); } return(BadRequest("Failed to update the database")); } catch (Exception ex) { Log.Error(ex, ex.Message); return(BadRequest(ex.Message)); } }