private static WorkoutRoutine GetWorkoutRoutineFromDR(NpgsqlDataReader dr)
        {
            int intWorkoutRoutineID        = Convert.ToInt32(dr["intWorkoutRoutineID"]);
            int intTotalMinutes            = Convert.ToInt32(dr["intTotalMinutes"]);
            int intTotalCalsBurned         = Convert.ToInt32(dr["intTotalCalsBurned"]);
            int intUserID                  = Convert.ToInt32(dr["intUserID"]);
            List <ExerciseType> lstRoutine = ExerciseTypeDAL.GetExercisesByWorkout(intWorkoutRoutineID).ToList();

            WorkoutRoutine workoutRoutine = WorkoutRoutine.of(intWorkoutRoutineID, intTotalMinutes, lstRoutine, intTotalCalsBurned);

            return(workoutRoutine);
        }
        internal static bool AddWorkoutRoutine(int[] arrIntExerciseTypeIDs)
        {
            int intUserID = HomeController.USER_NUMBER;
            int intDayID  = HomeController.DAY_NUMBER;
            // calculate total minutes and total calories burned
            List <ExerciseType> exercises = new List <ExerciseType>();
            ExerciseType        tmpExercise;

            foreach (int id in arrIntExerciseTypeIDs)
            {
                tmpExercise = ExerciseTypeDAL.GetExerciseTypeByID(id);
                exercises.Add(tmpExercise);
            }

            int intTotalMinutes    = 0;
            int intTotalCalsBurned = 0;

            foreach (ExerciseType ex in exercises)
            {
                intTotalMinutes    += ex.intTime;
                intTotalCalsBurned += ex.intCaloriesBurned;
            }

            WorkoutRoutine workoutRoutine = WorkoutRoutine.of(intTotalMinutes, exercises, intTotalCalsBurned);

            // insert to workout table
            // get the id of new workout
            int intWorkoutRoutineID = InsertToWorkoutTable(workoutRoutine, intUserID);

            bool success = false;

            // insert each id in array to workoutExerciseType table
            foreach (ExerciseType ex in exercises)
            {
                success = InsertToWorkoutExerciseTypeTable(intWorkoutRoutineID, ex.intExerciseTypeID);
            }

            // remove time from alloted exercise minutes
            bool exMinsSuccess = RemoveTime(intTotalMinutes, intUserID, intDayID);

            // add calories to users' calories for the day
            bool calsSuccess = AddCals(workoutRoutine.intTotalCalsBurned, intUserID, intDayID);

            // insert to day/exercise table
            bool daySuccess = InsertToDayExerciseTable(intWorkoutRoutineID, intDayID);

            return(success && exMinsSuccess && calsSuccess);
        }