protected virtual double GetLoadVolume(SessionExercise sessionExercise, double bodyweight)
        {
            var bodyweightVolume = sessionExercise.Exercise.RelativeBodyweight / 100 * bodyweight;
            var dynamicSets      = sessionExercise.Sets.OfType <DynamicExerciseSet>();

            var exerciseVolume = dynamicSets.Aggregate(
                0d,
                (totalVolume, set) => totalVolume + set.Reps * (set.Weight + bodyweightVolume)
                );

            return(exerciseVolume);
        }
Beispiel #2
0
        private double GetMultiplier(SessionExercise sessionExercise)
        {
            var exercisedMuscles =
                sessionExercise.Exercise.Muscles.Where(
                    exercisedMuscle => _muscles.Contains(exercisedMuscle.Muscle)
                    );

            var multiplier = exercisedMuscles.Aggregate(
                0d,
                (totalMultiplier, exercisedMuscle) => totalMultiplier + exercisedMuscle.RelativeEngagement / 100.0
                );

            return(multiplier);
        }
        private async void OpenEditSessionExerciseDialogAsync(SessionExercise sessionExercise)
        {
            var sessionExerciseClone = sessionExercise.Clone();

            var dialog = _dialogs.For <SessionExerciseDialogViewModel>(DialogsIdentifier);

            dialog.Data.DialogTitle       = "Modified session exercise";
            dialog.Data.SubmitButtonTitle = "Save";
            dialog.Data.SessionExercise   = SessionExerciseViewModel.FromModel(sessionExerciseClone);

            var dialogResult = await dialog.Show();

            if (dialogResult != DialogResult.Ok)
            {
                return;
            }

            sessionExerciseClone = dialog.Data.SessionExercise.ToModel();
            TrainingSession.Exercises.Replace(sessionExercise, sessionExerciseClone);
        }
        private async void OpenAddSessionExerciseDialogAsync()
        {
            var exercise = new SessionExercise();

            var dialog = _dialogs.For <SessionExerciseDialogViewModel>(DialogsIdentifier);

            dialog.Data.DialogTitle       = "New session exercise";
            dialog.Data.SubmitButtonTitle = "Create";
            dialog.Data.SessionExercise   = SessionExerciseViewModel.FromModel(exercise);

            var dialogResult = await dialog.Show();

            if (dialogResult != DialogResult.Ok)
            {
                return;
            }

            exercise = dialog.Data.SessionExercise.ToModel();
            TrainingSession.Exercises.Add(exercise);
        }
 private void DeleteExercise(SessionExercise exercise)
 {
     TrainingSession.Exercises.RemoveByReference(exercise);
 }
 protected virtual double GetSetCount(SessionExercise sessionExercise) => sessionExercise.Sets.Length;
 protected override double GetLoadVolume(SessionExercise sessionExercise, double bodyweight)
 => ShouldBeCounted(sessionExercise) ? base.GetLoadVolume(sessionExercise, bodyweight) : 0;
 protected override double GetSetCount(SessionExercise sessionExercise)
 => ShouldBeCounted(sessionExercise) ? base.GetSetCount(sessionExercise) : 0;
 private bool ShouldBeCounted(SessionExercise sessionExercise) => _exercises.Contains(sessionExercise.Exercise);
Beispiel #10
0
 protected override double GetLoadVolume(SessionExercise sessionExercise, double bodyweight)
 => base.GetLoadVolume(sessionExercise, bodyweight) * GetMultiplier(sessionExercise);
Beispiel #11
0
 protected override double GetSetCount(SessionExercise sessionExercise)
 => base.GetSetCount(sessionExercise) * GetMultiplier(sessionExercise);
Beispiel #12
0
        public int AddSessionExercise(SessionExercise sessionExercise)
        {
            var result = context.SessionExercises.Add(sessionExercise);

            return(0);
        }