コード例 #1
0
ファイル: WorkoutTests.cs プロジェクト: xtophs/SPP_Public
        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;
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
            }
        }