示例#1
0
        public bool ModifyExerciseChangeReps(WorkoutExercise e, ExerciseSetting exerciseSetting)
        {
            var reps = PickReps(exerciseSetting);

            if (reps > 10)
            {
                if (e.Sets.All(x => x.Reps >= reps))
                {
                    return(false);
                }
            }
            else if (reps <= 10)
            {
                if (e.Sets.All(x => x.Reps < 10))
                {
                    return(false);
                }
            }

            e.Sets.Select(x =>
            {
                x.Reps = reps;
                return(x);
            }).ToList();
            return(true);
        }
示例#2
0
        /*
         * public bool ModifyExerciseAddSet(WorkoutExercise e, int reps, double rest)
         * {
         *  if (e.Sets.Count > 3)
         *  {
         *      return false;
         *  }
         *
         *  var set = new Set() {Reps = reps, Rest = rest};
         *  if (reps < 10)
         *      e.Sets.Insert(0, set);
         *  else
         *      e.Sets.Add(set);
         *
         *  return true;
         * }
         *
         */
        public bool ModifyExerciseChangeSet(WorkoutExercise e, ExerciseSetting exerciseSetting)
        {
            Set set  = null;
            var reps = PickReps(exerciseSetting);
            var rest = PickRest(exerciseSetting);

            if (reps > 10)
            {
                if (e.Sets.All(x => x.Reps >= 10))
                {
                    return(false);
                }
                set = e.Sets.Where(x => x.Reps < 10).Take(1).Single();
            }

            else if (reps <= 10)
            {
                if (e.Sets.All(x => x.Reps < 10))
                {
                    return(false);
                }
                set = e.Sets.Where(x => x.Reps >= 10).Take(1).Single();
            }

            if (set == null)
            {
                return(false);
            }
            set.Reps = reps;
            set.Rest = rest;

            return(true);
        }
示例#3
0
        public bool ModifyExerciseChangeRest(WorkoutExercise e, ExerciseSetting exerciseSetting)
        {
            var rest = PickRest(exerciseSetting);

            e.Sets.Select(x =>
            {
                x.Rest = rest;
                return(x);
            }).ToList();

            return(true);
        }
示例#4
0
        public Exercise PickExercise(int position, ExerciseSetting exerciseSetting, List <Exercise> exercisesOfMuscle)
        {
            var exercisesToChoose = exercisesOfMuscle.Where(x =>
                                                            exerciseSetting.UtilityType.Any(u => u == x.Utility)
                                                            &&
                                                            exerciseSetting.ExerciseTypes.Any(m => m == x.ExerciseType)
                                                            ).ToList();

            if (exerciseSetting.ExcludeExercises != null)
            {
                exercisesToChoose = exercisesToChoose
                                    .Where(x => !x.Name.ContainsAny(exerciseSetting.ExcludeExercises)).ToList();
            }

            if (position == 0)
            {
                exercisesToChoose = exercisesToChoose.Where(x => x.Utility == UtilityType.Basic).ToList();
            }

            var rExercise = new Random();
            int num       = rExercise.Next(exercisesToChoose.Count);

            return(exercisesToChoose[num]);
        }
示例#5
0
 public double PickRest(ExerciseSetting exerciseSetting)
 {
     return(exerciseSetting.Rest[new Random().Next(exerciseSetting.Rest.Length)]);
 }
示例#6
0
 public int PickReps(ExerciseSetting exerciseSetting)
 {
     return(exerciseSetting.Reps[new Random().Next(exerciseSetting.Reps.Length)]);
 }