Esempio n. 1
0
        private void SetExerciseButtonEnabledOrDisabled(Button exerciseButton)
        {
            if (_isOpenedFromModuleWindow)
            {
                exerciseButton.IsEnabled = true;
                exerciseButton.CustomizeForNotDone();
            }
            else if (_lesson != null)
            {
                int.TryParse(exerciseButton.Content.ToString().Replace(GlobalVariables.exerciseNumberPartialText, ""), out int buttonExerciseNumber);
                var exercisesDoneFromLesson = _exerciseService.GetDoneExercisesNumbersByLesson(_lesson);

                if (buttonExerciseNumber != 0 &&
                    exercisesDoneFromLesson != null &&
                    exercisesDoneFromLesson.Count > 0 &&
                    (exercisesDoneFromLesson.Contains(buttonExerciseNumber) ||
                     exercisesDoneFromLesson.Max() + 1 == buttonExerciseNumber))
                {
                    exerciseButton.IsEnabled = true;
                }
                else if (buttonExerciseNumber != 0)
                {
                    int firstExerciseNumberFromLesson = _exerciseService.GetFirstExerciseNumberFromLesson(_lesson);

                    if (firstExerciseNumberFromLesson != 0 &&
                        firstExerciseNumberFromLesson == buttonExerciseNumber)
                    {
                        exerciseButton.IsEnabled = true;
                    }
                    else
                    {
                        exerciseButton.IsEnabled = false;
                    }
                }
                else
                {
                    exerciseButton.IsEnabled = false;
                }

                CustomizeExerciseButtonAsDoneOrNot(exerciseButton);
            }
            else if (_exerciseNumber != 0)
            {
                int.TryParse(exerciseButton.Content.ToString().Replace(GlobalVariables.exerciseNumberPartialText, ""), out int buttonExerciseNumber);
                var listOfExercisesNumbersAlreadyDone = _exerciseService.GetDoneExercisesNumbersByUserAndExerciseNumber(_user, _exerciseNumber);

                if (buttonExerciseNumber <= _exerciseNumber ||
                    (listOfExercisesNumbersAlreadyDone != null &&
                     listOfExercisesNumbersAlreadyDone.Count > 0 &&
                     (listOfExercisesNumbersAlreadyDone.Contains(buttonExerciseNumber) ||
                      buttonExerciseNumber <= listOfExercisesNumbersAlreadyDone.Max() + 1)))
                {
                    exerciseButton.IsEnabled = true;
                }
                else
                {
                    exerciseButton.IsEnabled = false;
                }

                CustomizeExerciseButtonAsDoneOrNot(exerciseButton);
            }
        }