/// <summary>
        ///     Handles the OnItemClick event of the ExercisesListView control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ItemClickEventArgs" /> instance containing the event data.</param>
        private async void ExercisesListView_OnItemClick(object sender, ItemClickEventArgs e)
        {
            var result = await ViewExerciseContentDialog.ShowAsync();

            if (result != ContentDialogResult.Primary)
            {
                return;
            }
            var selectedExercise = (Exercise)ExercisesListView.SelectedItem;

            if (selectedExercise == null)
            {
                return;
            }
            var copyExercise = new Model.Task
            {
                Title       = selectedExercise.Title,
                Description = selectedExercise.Description,
                DueDate     = selectedExercise.DueDate,
                DueTime     = selectedExercise.DueTime,
                Users       = new List <User> {
                    Users.Instance.SessionUser
                },
                TaskStatus = Model.Task.Status.Added
            };

            await AddTask(copyExercise, NotificationCheckBox.IsChecked != null && NotificationCheckBox.IsChecked.Value);

            Users.Instance.Changed = true;
        }
        /// <summary>
        ///     Deletes the exercise.
        /// </summary>
        private async void DeleteExercise()
        {
            ViewExerciseContentDialog.Hide();
            var result = await DeleteExerciseContentDialog.ShowAsync();

            var selectedExercise = (Exercise)ExercisesListView.SelectedItem;

            if (result != ContentDialogResult.Primary)
            {
                return;
            }
            if (selectedExercise == null)
            {
                return;
            }
            try
            {
                if (!await Tasks.Instance.DeleteTask(selectedExercise))
                {
                    await new MessageDialog("Failed to delete exercise", "Error").ShowAsync();
                }
            }
            catch (Exception e)
            {
                await e.Display("Failed to delete exercise.");

                await e.Log();
            }

            CourseExercises.Remove(selectedExercise);
            var selectedCourse = (Course)CoursesListView.SelectedItem;

            selectedCourse?.Exercises.Remove(selectedExercise);
        }
        /// <summary>
        ///     Edits the exercise.
        /// </summary>
        private async void EditExercise()
        {
            ViewExerciseContentDialog.Hide();
            var selectedExercise = (Exercise)ExercisesListView.SelectedItem;

            EditExerciseContentDialog.DataContext = selectedExercise;
            var result = await EditExerciseContentDialog.ShowAsync();

            if (result != ContentDialogResult.Primary)
            {
                return;
            }
            try
            {
                await Tasks.Instance.UpdateTask(selectedExercise);
            }
            catch (Exception ex)
            {
                await ex.Display("Failed to edit exercise.");

                await ex.Log();
            }
        }