public override bool Save()
        {
            bool result = false;

            if (SelectedSession == null)
            {
                ShowFeedback("Cannot save changes. No Selected Session found.", FeedbackType.Error);
                return(result);
            }
            if (DateTime.Now >= SelectedSession.StartTime && DateTime.Now <= SelectedSession.EndTime)
            {
                ClearFeedback();
                try
                {
                    if (FormContextQuestion == FormContext.Create)
                    {
                        //create new  answer
                        result = User.AskQuestion(SelectedQuestion, UnitOfWork);
                        UpdateQuestionsList(QuestionSearchTxt);
                        FormContextQuestion = FormContext.Update;//selected item now has an id go to update mode
                        ShowFeedback($"Added question: {SelectedQuestion.Name}.", FeedbackType.Success);
                    }
                    else
                    {
                        //Update Selected Answer
                        result = SelectedQuestion.Validate(UnitOfWork);
                        if (result)
                        {
                            result = (UnitOfWork.Complete() > 0) ? true : false;
                            ShowFeedback($"Updated question: {SelectedQuestion.Name}", FeedbackType.Success);
                        }
                    }
                }
                catch (DbUpdateException ex)
                {
                    ShowFeedback(ex.Message, FeedbackType.Error);
                }
                catch (SqlException ex)
                {
                    ShowFeedback(ex.Message, FeedbackType.Error);
                }
                catch (Exception ex)
                {
                    ShowFeedback(ex.Message, FeedbackType.Error);
                }
            }
            else
            {
                ShowFeedback($"Cannot Save: \nSession: {SelectedSession.Name} is closed. Start: {SelectedSession.StartTime} - {SelectedSession.EndTime}", FeedbackType.Error);
                result = false;
            }

            return(result);
        }
Beispiel #2
0
        public void SelectResponse()
        {
            ResponseVM newResponse = SelectAndCreateResponse(SelectedQuestion.Response);

            if (newResponse != null)
            {
                SelectedQuestion.Response = newResponse;
                //When the question is selected, the following notification is needed for Response Style name to be reflected in the name of Response Style the question grid
                SelectedQuestion.NotifyPropertyChanged("ResponseTitle");
                Window.UpdateTemplate();
            }
        }
Beispiel #3
0
        private static ISession GetInProgressSession(SelectedQuestion question = null)
        {
            if (question == null)
            {
                question = SampleQuestion;
            }

            var session = Substitute.For <ISession>();

            session.GetObject <int>("Score").Returns(3);
            session.GetObject <int[]>("QuestionIndices").Returns(QuestionIndices);
            session.GetObject <SelectedQuestion>("CurrentQuestion").Returns(question);

            return(session);
        }
Beispiel #4
0
        private void EditExecute(object obj)
        {
            if (SelectedQuestion == null)
            {
                MessageBox.Show("请选择要编辑的问题");
                return;
            }
            var c = new AskAndAnswer(SelectedQuestion.DeepCopy());

            c.Closed += (s, e) =>
            {
                if (c.DialogResult == true)
                {
                    Refresh();
                }
            };
            c.Show();
        }
        // Add/Update question to questionlist
        public void AddQuestion()
        {
            var item = SelectedQuestion.Index == 0 ? null : SelectedQuestionList.Questions.FirstOrDefault(i => i.Index == SelectedQuestion.Index);

            if (TypeConverter.type[SelectedQuestion.Type] == "Table")
            {
                var temp = new ViewModelLocator().OptionHandlerViewModel;
                temp.OptionTemp.Insert(0, temp.HeaderOne);
                temp.OptionTemp.Insert(1, temp.HeaderTwo);
                SelectedQuestion.QuestionOptions = temp.ListToString();
            }
            if (item == null)
            {
                try
                {
                    SelectedQuestionList.Questions.Add(SelectedQuestion.ToQuestion());
                    Questions.Add(SelectedQuestion);
                    SelectedQuestion = null;
                    SwitchView       = 1;
                    UpdateIndex();
                }
                catch (DbEntityValidationException dbEx)
                {
                    foreach (var validationErrors in dbEx.EntityValidationErrors)
                    {
                        foreach (var validationError in validationErrors.ValidationErrors)
                        {
                            Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                        }
                    }
                }
            }
            else
            {
                item = SelectedQuestion.ToQuestion();
                var t = Questions.Single(i => i.Index == SelectedQuestion.Index);
                t = SelectedQuestion;
                SelectedQuestion = null;
                SwitchView       = 1;
                UpdateIndex();
            }
        }
Beispiel #6
0
        public void DeleteQuestion()
        {
            //CAST QUESTIONVIEWMODEL TO QUESTION
            Question question = SelectedQuestion.ToPoco();

            //DELETE QUESTION ANSWERS
            var answers = question.Answers;

            foreach (var a in answers)
            {
                AnswerRepository.Delete(a.AnswerID);
            }

            //REMOVE QUESTION
            QuestionRepository.Delete(question.QuestionID);
            QuestionRepository.Save();

            Questions.Remove(SelectedQuestion);
            ResetData();
        }
Beispiel #7
0
 private void ExecuteOpenSelectedQuestion()
 {
     if (SelectedQuestion != null)
     {
         var p = SelectedQuestion.GetCompleteQuestion();
         this.Name           = p.Name;
         this.Request        = p.Request;
         this.TypeOfResponse = p.ResponseType;
         this.TypeOfTeam     = p.TeamName;
         this.IsRequired     = p.RequiresResponse;
         this.HelpText       = p.HelpText;
         //this.HelpImage = selectedQuestion.HelpImage
         this.IsTemplate = p.Template;
         Messenger.Default.Send <RequestCloseQuestionsDialog>(new RequestCloseQuestionsDialog());
         this.PrerequisiteQuestions  = new ObservableCollection <Question>(p.Prerequisites);
         this.PostrequisiteQuestions = new ObservableCollection <Question>(p.Postrequisites);
         this.CorequisiteQuestions   = new ObservableCollection <Question>(p.Corequisites);
         Messenger.Default.Send <RequestCloseLoadQuestionsDialog>(new RequestCloseLoadQuestionsDialog());
     }
 }
Beispiel #8
0
 private void DeleteQuestion()
 {
     SelectedQuestion.Delete();
     Questions.Remove(SelectedQuestion);
 }
Beispiel #9
0
 private void ReloadQuestion()
 {
     SelectedQuestion.Reload();
 }
Beispiel #10
0
 private void DisableQuestion()
 {
     SelectedQuestion.Disable();
     Questions.Remove(SelectedQuestion);
 }