protected void AddSessionToSlides(SlideQuestionModel slideQuestionModel)
        {
            var hasIntroSlide = this.HasIntroSlide();

            if (!hasIntroSlide)
            {
                var introSlide = this.RibbonHelper.CreateNewSlide(1);

                this.SlideManipulator.AddIntroSlide(this.SlideSessionModel, introSlide);

                this.SlideSessionModel.IntroSlideId = introSlide.SlideID;

                PresentationInformationStore.SetArsnovaIntroSlideAdded();
            }

            var questionInfoSlide = SlideTracker.GetSlideById(slideQuestionModel.QuestionInfoSlideId);

            if (this.SessionInformationProvider.IsClickQuestion(slideQuestionModel.QuestionType))
            {
                // arsnova.click
                var questionTimerSlide = slideQuestionModel.QuestionTimerSlideId.HasValue
                    ? SlideTracker.GetSlideById(slideQuestionModel.QuestionTimerSlideId.Value)
                    : this.RibbonHelper.CreateNewSlide(questionInfoSlide.SlideIndex + 1);
                slideQuestionModel.QuestionTimerSlideId = questionTimerSlide.SlideID;

                var resultsSlide = slideQuestionModel.ResultsSlideId.HasValue
                                        ? SlideTracker.GetSlideById(slideQuestionModel.ResultsSlideId.Value)
                                        : this.RibbonHelper.CreateNewSlide(questionInfoSlide.SlideIndex + 2);
                slideQuestionModel.ResultsSlideId = resultsSlide.SlideID;

                this.SlideManipulator.AddQuizToStyledSlides(slideQuestionModel, questionInfoSlide, questionTimerSlide, resultsSlide);
            }
            else
            {
                // arsnova.voting
                slideQuestionModel.QuestionTimerSlideId = slideQuestionModel.QuestionInfoSlideId;

                var resultsSlide = slideQuestionModel.ResultsSlideId.HasValue
                                        ? SlideTracker.GetSlideById(slideQuestionModel.ResultsSlideId.Value)
                                        : this.RibbonHelper.CreateNewSlide(questionInfoSlide.SlideIndex + 1);
                slideQuestionModel.ResultsSlideId = resultsSlide.SlideID;

                this.SlideManipulator.AddQuizToStyledSlides(slideQuestionModel, questionInfoSlide, resultsSlide);
            }

            PresentationInformationStore.StoreSlideSessionModel(this.SlideSessionModel);
            this.ViewPresenter.CloseWithoutPrompt();
        }
        private void InitializeWindowCommandBindings()
        {
            this.WindowCommandBindings.AddRange(
                new List <CommandBinding>
            {
                new CommandBinding(
                    NavigationButtonCommands.Cancel,
                    (e, o) =>
                {
                    var delete = PopUpWindow.ConfirmationWindow(
                        this.LocalizationService.Translate("Cancel"),
                        this.LocalizationService.Translate("Do you really want to cancel and rewind all current changes?"));

                    if (delete)
                    {
                        if (this.isNew)
                        {
                            this.SlideSessionModel.Questions.Remove(this.SlideQuestionModel);
                            this.OnPropertyChanged(nameof(this.SlideSessionModel.Questions));
                        }
                        else
                        {
                            this.SlideQuestionModel = this.questionBeforeEdit;
                            this.OnPropertyChanged(nameof(this.SlideSessionModel.Questions));
                        }

                        // don't save presentation on cancel (no changes here)
                        this.ViewPresenter.CloseWithoutPrompt();
                    }
                },
                    (e, o) => o.CanExecute = true),
                new CommandBinding(
                    NavigationButtonCommands.Back,
                    (e, o) =>
                {
                    this.ViewPresenter.Show(
                        new QuestionViewViewModel(
                            this.GetViewModelRequirements(), this.questionId, this.isNew,
                            this.questionBeforeEdit));
                },
                    (e, o) => o.CanExecute = true),
                new CommandBinding(
                    NavigationButtonCommands.Finish,
                    (e, o) =>
                {
                    var validationResult = this.Validate();

                    if (validationResult.Item1)
                    {
                        this.SlideQuestionModel.QuestionTypeText = this.QuestionTypeTranslator.TranslateQuestionType(this.SlideQuestionModel.QuestionType);

                        var questionInfoSlide = SlideTracker.GetSlideById(this.SlideQuestionModel.QuestionInfoSlideId);
                        if (questionInfoSlide != null)
                        {
                            var questionInfoSlideNumber          = questionInfoSlide.SlideNumber;
                            this.SlideQuestionModel.SlideNumbers = $"{questionInfoSlideNumber} - {questionInfoSlideNumber + 2}";
                        }

                        if (this.SlideSessionModel.SessionType == SessionType.ArsnovaVoting)
                        {
                            // arsnova.click session will be posted to server on presentation startup
                            this.SessionManager.CreateOrUpdateArsnovaVotingQuestion(this.SlideSessionModel,
                                                                                    this.SlideQuestionModel.Index);
                        }

                        this.AddSessionToSlides(this.SlideQuestionModel);
                        PresentationInformationStore.StoreSlideSessionModel(this.SlideSessionModel);
                    }
                    else
                    {
                        this.DisplayFailedValidationResults(validationResult.Item2);
                    }
                },
                    (e, o) => o.CanExecute = true)
            });
        }