Example #1
0
        public static SingleQuestionVm MapSingleQuestionVm(this SingleQuestion question)
        {
            var result = new SingleQuestionVm();

            result.Id                      = question.Id;
            result.Meta                    = new QuizMetaVm();
            result.Meta.EndDate            = question.EndDate;
            result.Meta.SelectedCategoryId = question.CategoryId;
            result.Meta.SelectedPriorityId = question.PriorityId;
            result.Meta.SelectedTargets    =
                CommonBc.Instance.GetTargets().Where(t => question.Targets.Contains(t.Id)).ToList().
                MapToCaptionSelectList("Departments");
            result.Meta.StartDate          = question.StartDate;
            result.Question                = new QuestionVm();
            result.Question.Enquiry        = question.Enquiry;
            result.Question.CanSkip        = question.CanSkip;
            result.Question.Id             = question.Id;
            result.Question.IsUserMeta     = question.IsUserMeta;
            result.Question.QuizId         = null;
            result.Question.IsSingleSelect = question.IsSingleSelect;
            result.Question.Answers        = new List <AnswerVm>();

            foreach (var answer in question.Answers)
            {
                var aVm = new AnswerVm();
                aVm.Id         = answer.Id;
                aVm.Caption    = answer.Caption;
                aVm.QuestionId = question.Id.Value;
            }

            return(result);
        }
        public static SingleQuestionVm GetSingleQuestionVm(long questionId)
        {
            SingleQuestion question = QuizBc.Instance.GetSingleQuestion(questionId);

            var result = question.MapSingleQuestionVm();

            return(result);
        }
Example #3
0
        private static SingleQuestionLblVm MapToSingleQuestionLblVm(this SingleQuestion question)
        {
            var result = new SingleQuestionLblVm();

            result.Enquiry  = question.Enquiry.Truncate(20) + "...";
            result.Id       = question.Id.Value;
            result.Category = CommonBc.Instance.GetCategories().First(c => c.Id == question.CategoryId).Caption;
            result.Target   = string.Join(";",
                                          CommonBc.Instance.GetTargets().Where(t => question.Targets.Contains(t.Id)).Select(
                                              t => t.Caption));
            result.Priority = CommonBc.Instance.GetPriorities().First(p => p.Id == question.PriorityId).Caption;

            return(result);
        }
Example #4
0
        private void ProcessSingleQuestion(SingleQuestion question, DefaultConfigModel model)
        {
            WriteContent(question.Content);
            WriteDefaultAnswer(question.DefaultAnswer);
            WriteDescription(question.Descriptions);
            var singleChoice = question as SingleChoiceQuestion;

            if (singleChoice != null)
            {
                var options = singleChoice.Options;
                Console.Write("Choose Answer ({0}): ", string.Join("/", options));
                Console.Write(singleChoice.DefaultAnswer[0]);
                Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
                string matched;
                do
                {
                    var input = Console.ReadLine();
                    if (string.IsNullOrEmpty(input))
                    {
                        question.SetDefault(model);
                        break;
                    }
                    else
                    {
                        matched = GetMatchedOption(options, input);
                        if (matched == null)
                        {
                            Console.Write("Invalid Answer, please reenter: ");
                        }
                        else
                        {
                            question.Setter(matched, model);
                        }
                    }
                }while (matched == null);
            }
            else
            {
                var line = Console.ReadLine();
                if (!string.IsNullOrEmpty(line))
                {
                    question.Setter(line, model);
                }
                else
                {
                    question.SetDefault(model);
                }
            }
        }
Example #5
0
        public void TestSurveySerialization()
        {
            string expected = "{\"survey\":{\"id\":\"12344134\",\"len\":\"4\",\"questions\":[{\"type\":\"single\"," +
                              "\"question\":\"How well do the professors teach at this university?\",\"options\":[{\"1\":\"Extremely well\"}," +
                              "{\"2\":\"Very well\"}]},{\"type\":\"multiple\",\"question\":\"How effective is the teaching outside yur major at the univesrity?\"," +
                              "\"options\":[{\"1\":\"Extremetly effective\"},{\"2\":\"Very effective\"},{\"3\":\"Somewhat effective\"},{\"4\":\"Not so effective\"}," +
                              "{\"5\":\"Not at all effective\"}]},{\"type\":\"text\",\"question\":\"Some question\"},{\"type\":\"starRate\",\"question\":\"Star rating question\"}]}}";

            IQuestion[] questions = new IQuestion[4];
            questions[0] = new SingleQuestion()
            {
                Question = "How well do the professors teach at this university?",
                Options  = new[]
                {
                    "Extremely well",
                    "Very well"
                }
            };
            questions[1] = new MultipleQuestion()
            {
                Question = "How effective is the teaching outside yur major at the univesrity?",
                Options  = new[]
                {
                    "Extremetly effective",
                    "Very effective",
                    "Somewhat effective",
                    "Not so effective",
                    "Not at all effective"
                }
            };
            questions[2] = new TextQuestion()
            {
                Question = "Some question"
            };
            questions[3] = new StarRateQuestion()
            {
                Question = "Star rating question"
            };

            Survey survey = new Survey()
            {
                Id        = "12344134",
                Questions = questions
            };

            Assert.Equal(expected, survey.GetJson());
        }
        public static SingleQuestion GetSearchSingleQuestion(this SqlDataReader reader)
        {
            SingleQuestion result = new SingleQuestion();

            //Id, Title, IsSingleSelect, IsSkippable, CreatorId, StartTime, EndTime, PriorityId, CategoryId, CreateCost

            result.Id             = reader.GetValue <long>("Id");
            result.Enquiry        = reader.GetValue <string>("Title");
            result.CategoryId     = reader.GetValue <long>("CategoryId");
            result.PriorityId     = reader.GetValue <long>("PriorityId");
            result.StartDate      = reader.GetValue <DateTime>("StartTime");
            result.EndDate        = reader.GetValue <DateTime>("EndTime");
            result.CanSkip        = reader.GetValue <bool>("IsSkippable");
            result.IsSingleSelect = reader.GetValue <bool>("IsSingleSelect");

            return(result);
        }
        public SingleQuestion ToEntity()
        {
            var result = new SingleQuestion();

            result.OwnerId        = UserBc.Instance.GetCurrntUser().Id;
            result.CategoryId     = Meta.SelectedCategoryId;
            result.EndDate        = Meta.EndDate;
            result.Id             = Id;
            result.PriorityId     = Meta.SelectedPriorityId;
            result.StartDate      = Meta.StartDate;
            result.Targets        = Meta.SelectedTargets.Items.Where(t => t.Selected).Select(t => long.Parse(t.Value)).ToList();;
            result.Answers        = Question.Answers.Select(a => a.ToEntity()).ToList();
            result.CanSkip        = Question.CanSkip;
            result.Enquiry        = Question.Enquiry;
            result.Id             = Id;
            result.IsSingleSelect = Question.IsSingleSelect;
            result.IsUserMeta     = Question.IsUserMeta;
            result.QuizId         = null;

            return(result);
        }
        public void SaveSingleQuestion(SingleQuestion question)
        {
            var command = new SaveSingleQuestionCommand(question);

            command.Execute();
        }
Example #9
0
 public SaveSingleQuestionCommand(SingleQuestion question)
 {
     StoredProcedureName = SeedStoredProcedures.SaveQuestion;
     _question           = question;
 }
Example #10
0
        public SingleQuestion GetSingleQuestion(long questionId)
        {
            SingleQuestion result = _quizDac.GetSingleQuestion(questionId);

            return(result);
        }
Example #11
0
        public SingleQuestion GetQuestionOfTheDay(long userId)
        {
            SingleQuestion result = _quizDac.GetQuestionOfTheDay(userId);

            return(result);
        }
Example #12
0
        public SingleQuestion GetRamdomSingleQuestionForUser(long userId)
        {
            SingleQuestion result = _quizDac.GetRandomQuestion(userId);

            return(result);
        }
Example #13
0
 public void SaveSingleQuestion(SingleQuestion question)
 {
     _quizDac.SaveSingleQuestion(question);
 }
        public static QuestionItem Create(QuestionData.QuestionsRow question, string languageCode, string parentControlUniqueID,
                                          int questionRandomSeed, VoterAnswersData.VotersAnswersDataTable voterAnswersState,
                                          bool enableAnswerDefaults, bool isDesignMode = false)
        {
            QuestionItem item;

            if ((question.TypeAssembly.Length == 0) || (question.TypeAssembly == null))
            {
                throw new ApplicationException("Could not create an instance because the question data has no assembly type specified");
            }
            try
            {
                item = (QuestionItem)Assembly.Load(question.TypeAssembly).CreateInstance(question.TypeNameSpace);
            }
            catch (InvalidCastException)
            {
                throw new InvalidCastException("Concrete type " + question.TypeNameSpace + " is not a child of the questionitem abstract class");
            }
            catch (NullReferenceException)
            {
                throw new InvalidCastException("specfied type " + question.TypeNameSpace + " could not be found in the specifed assembly " + question.TypeAssembly);
            }
            item.ID         = "Question" + question.QuestionId.ToString();
            item.QuestionId = question.QuestionId;
            item.Text       = new PipeManager().PipeValuesInText(question.QuestionId, question.QuestionText +
                                                                 ((question.ShowHelpText && !isDesignMode)?(
                                                                      question.IsHelpTextNull()?string.Empty: HelpTextInSmallFont(question.HelpText)):string.Empty)//JJSurveyBoxChange
                                                                 , voterAnswersState, languageCode);
            item.LanguageCode    = languageCode;
            item.QuestionId_Text = question.QuestionIdText;
            item.HelpText        = question.HelpText;
            SectionQuestion question2 = item as SectionQuestion;

            if ((question2 != null) && (question.RepeatableSectionModeId != 0))
            {
                question2.RepeatMode  = (RepeatableSectionMode)question.RepeatableSectionModeId;
                question2.MaxSections = question.MaxSections;
                question2.GridAnswers = new Questions().GetQuestionSectionGridAnswers(question.QuestionId);
                if ((question.AddSectionLinkText != null) && (question.AddSectionLinkText.Length > 0))
                {
                    question2.AddSectionLinkText = question.AddSectionLinkText;
                }
                if ((question.DeleteSectionLinkText != null) && (question.DeleteSectionLinkText.Length > 0))
                {
                    question2.DeleteSectionLinkText = question.DeleteSectionLinkText;
                }
                if ((question.EditSectionLinkText != null) && (question.EditSectionLinkText.Length > 0))
                {
                    question2.EditSectionLinkText = question.EditSectionLinkText;
                }
                if ((question.UpdateSectionLinkText != null) && (question.UpdateSectionLinkText.Length > 0))
                {
                    question2.UpdateSectionLinkText = question.UpdateSectionLinkText;
                }
            }
            SingleQuestion question3 = item as SingleQuestion;

            if (question3 != null)
            {
                question3.VoterAnswersState    = voterAnswersState;
                question3.EnableAnswersDefault = enableAnswerDefaults;
                question3.MinSelectionRequired = question.MinSelectionRequired;
                question3.MaxSelectionAllowed  = question.MaxSelectionAllowed;
                question3.ColumnsNumber        = question.ColumnsNumber;
                question3.LayoutMode           = question.IsLayoutModeIdNull() ? QuestionLayoutMode.Vertical : ((QuestionLayoutMode)question.LayoutModeId);
                if (question.RandomizeAnswers)
                {
                    question3.DataSource = new Answers().GetRandomAnswers(question.QuestionId, questionRandomSeed, languageCode);
                    return(question3);
                }
                question3.DataSource = new Answers().GetAnswers(question.QuestionId, languageCode);
                return(question3);
            }
            MatrixQuestion question4 = item as MatrixQuestion;

            if (question4 != null)
            {
                question4.VoterAnswersState    = voterAnswersState;
                question4.EnableAnswersDefault = enableAnswerDefaults;
                question4.MinSelectionRequired = question.MinSelectionRequired;
                question4.MaxSelectionAllowed  = question.MaxSelectionAllowed;
                question4.DataSource           = new Questions().GetMatrixChildQuestions(question.QuestionId, languageCode);
                return(question4);
            }
            return(item);
        }