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) }); }