コード例 #1
0
        public TrainingCycle GenerateNewCycleForFiveThreeOneRoutine(App.DTO.WorkoutRoutine baseRoutine,
                                                                    NewFiveThreeOneCycleInfo cycleInfo)
        {
            // TODO: Fix this entire ugly workaround of a method

            var oldRoutineMaxCycleNumber = baseRoutine.TrainingCycles.Max(cycle => cycle.CycleNumber);
            var oldCycle =
                baseRoutine.TrainingCycles.FirstOrDefault(cycle => cycle.CycleNumber == oldRoutineMaxCycleNumber);
            var oldCycleEndingDate = oldCycle.EndingDate;

            if (oldCycleEndingDate == null)
            {
                throw new ApplicationException("Cannot generate a new training cycle: old cycle's ending date is null");
            }

            var newCycleStartingDate = ((DateTime)oldCycleEndingDate).AddDays(1);

            var routineInfo = new NewFiveThreeOneRoutineInfo
            {
                BaseRoutine  = baseRoutine,
                CycleInfo    = cycleInfo,
                StartingDate = newCycleStartingDate
            };

            var generator      = new FiveThreeOneRoutineGenerator(routineInfo);
            var generatedCycle = generator.GenerateNewTrainingCycle(baseRoutine);

            return(generatedCycle);
        }
コード例 #2
0
        public App.DTO.WorkoutRoutine GenerateNewFiveThreeOneRoutine(NewFiveThreeOneRoutineInfo routineInfo)
        {
            var generator        = new FiveThreeOneRoutineGenerator(routineInfo);
            var generatedRoutine = generator.GenerateNewRoutine();

            return(generatedRoutine);
        }