コード例 #1
0
 private static void LevelUpDifficulty(DiscreteExercisePlanOptions options, ref int currentLeadReps, ref int iteration)
 {
     if (iteration++ % options.LevelUpFrequency == 0)
     {
         currentLeadReps += options.LevelUpIntensity;
     }
 }
コード例 #2
0
 private static void SetupSetGeneration(DiscreteExercisePlanOptions options, out List <ExerciseSet> Sets, out int currentLeadReps, out DateTime currentDay, out int iteration)
 {
     Sets            = new List <ExerciseSet>();
     currentLeadReps = options.MaxReps / 2;
     currentDay      = options.StartDate;
     iteration       = 0;
 }
コード例 #3
0
        public static DiscreteExercisePlan Generate(DiscreteExercisePlanOptions options)
        {
            var plan = new DiscreteExercisePlan();

            List <ExerciseSet> exerciseSets = GenerateSets(options);

            plan.SetsOfExercise = exerciseSets;

            plan.Name    = options.Name;
            plan.Profile = options.Profile;

            return(plan);
        }
コード例 #4
0
        public async Task <IActionResult> PostExercise([FromForm] DiscreteExercisePlanOptions options, [FromForm] ExerciseDays days)
        {
            var body = this.HttpContext.Request.Form;

            options.Days = days;
            if (options == null)
            {
                return(this.StatusCode(500));
            }

            var userEmail = User.FindFirst(ClaimTypes.Name).Value;
            var thisUser  = this.profileData.GetByEmailAddress(userEmail);

            options.Profile = thisUser;
            var exercisePlan = DiscretePlanGenerator.Generate(options);

            profileData.Update(userEmail, exercisePlan);
            profileData.Commit();
            return(LocalRedirect("~/index"));
        }
コード例 #5
0
        private static List <ExerciseSet> GenerateSets(DiscreteExercisePlanOptions options)
        {
            List <ExerciseSet> Sets;
            int      currentLeadReps, iteration;
            DateTime currentDay;

            SetupSetGeneration(options, out Sets, out currentLeadReps, out currentDay, out iteration);

            while (currentLeadReps < options.MaxReps)
            {
                if (DayOfWorkOut(currentDay, options.Days))
                {
                    for (int i = 0; i < options.Sets; i++)
                    {
                        Sets.Add(CreateSet(currentLeadReps, currentDay, i));
                    }
                }
                LevelUpDifficulty(options, ref currentLeadReps, ref iteration);
                currentDay = currentDay.AddDays(1);
            }

            return(Sets);
        }