예제 #1
0
        public void SaveCustomWorkout(object parameter)
        {
            // Summary
            //
            // Save Custom made workout

            if (parameter == null)
            {
                throw new ArgumentNullException();
            }

            (parameter as Workout).Length = Workout.GenerateLength(parameter as Workout);

            MongoHelper.AddWorkoutAsync(parameter as Workout);

            ReadWorkouts();

            BuildingWorkout             = false;
            CustomWorkout               = null;
            _customWorkoutExerciseCount = 0;
        }
예제 #2
0
        public void GenerateRandomWorkout()
        {
            // Summary
            //
            // Generates new randomized workout

            // Let user specify congig first
            OpenConfig();

            // Worker variables
            List <Exercise> randomizedExercises = new List <Exercise>();

            var exercises = (List <Exercise>)DatabaseHelper.GetExercises();

            int randIndex;

            // Get parameters from config

            if (_config == null)
            {
                _config = Configuration.GetConfig();
            }

            int numStations  = _config.NumStations;
            int numExercises = _config.NumExercisesPerStation;
            int stationReps  = _config.NumRounds;

            int repSeconds  = _config.ExerciseLength;
            int restSeconds = _config.ExerciseRestLength;
            int setSeconds  = _config.StationRestLength;

            // Get list of distinct randomized exercises of necessary size
            while (randomizedExercises.Count != numStations * numExercises)
            {
                randIndex = _rng.Next(exercises.Count);

                if (!randomizedExercises.Contains(exercises[randIndex]))
                {
                    randomizedExercises.Add(exercises[randIndex]);
                }
            }

            Workout workout = new Workout
            {
                Name        = "New Workout",
                Description = "Randomly Generated Workout",
                RepSeconds  = repSeconds,
                RestSeconds = restSeconds,
                SetSeconds  = setSeconds,
                StationReps = stationReps
            };

            // Fill workout
            for (int i = 0; i < numStations; i++)
            {
                workout.Stations.Add(new Station());
                workout.Stations[i].StationName = ("Station " + (i + 1).ToString());
                workout.Stations[i].Exercises   = new List <Exercise>();

                for (int j = 0; j < numExercises; j++)
                {
                    workout.Stations[i].Exercises.Add(new Exercise());
                    workout.Stations[i].Exercises[j] = randomizedExercises[numExercises * i + j];
                }
            }

            // Add workout length
            workout.Length = Workout.GenerateLength(workout);

            SelectedWorkout        = workout;
            RandomWorkoutGenerated = true;
        }