Exemple #1
0
 public void Init()
 {
     Question = new ScaleQuestion()
     {
         Questionnaire = new Questionnaire()
         {
             Id = Guid.Empty.ToString()
         }
     };
     MockRepo = new Mock <IQuestionRepository>();
     MockRepo.Setup(elem => elem.InsertAsync(Question)).Returns(Task.CompletedTask);
     ScalaVM = new ScaleQuestionViewModel(Question, MockRepo.Object);
 }
Exemple #2
0
        public void LoadFromDatabase(LoggingManager log)
        {
            var qDataList = log.GetQuestionSetContent(Name);

            foreach (var questionData in qDataList)
            {
                Question q;
                switch ((Enums.Question)questionData.QuestionType)
                {
                case Enums.Question.Info:
                    q = new InfoScreen(questionData);
                    break;

                case Enums.Question.Text:
                    q = new TextQuestion(questionData);
                    break;

                case Enums.Question.Choice:
                    q = new ChoiceQuestion(questionData);
                    break;

                case Enums.Question.Scale:
                    q = new ScaleQuestion(questionData);
                    break;

                case Enums.Question.Ladder:
                    q = new LadderQuestion(questionData);
                    break;

                case Enums.Question.Stimuli:
                    q = new VisualStimuli(questionData);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                q.Jumps = log.GetJumps(questionData);
                Questions.Add(q);
            }
        }
 public ScaleQuestionViewModel(ScaleQuestion question, IQuestionRepository questionRepository) : base(question)
 {
     _question           = question;
     _questionRepository = questionRepository;
 }
        public void AddScaleQuestion(string questionText, int scale)
        {
            var scaleQuestion = new ScaleQuestion(questionText, scale);

            _surveyQuestions.Add(scaleQuestion);
        }
Exemple #5
0
        public void Visit(ScaleQuestion q)
        {
            _dynamicFieldsWithScrollbar.gameObject.SetActive(false);

            var scaleContent = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Questionnaire/Content/ScaleContent");

            _customContent = scaleContent.transform;
            MenuUtils.PlaceElement(scaleContent, _questionContent);

            //Load image
            var image       = _customContent.Find("Image");
            var imageSource = "Textures/questionline";

            switch (q.Scale)
            {
            case Scale.Pleasure:
                imageSource = "Textures/SAM-V-5";
                break;

            case Scale.Arousal:
                imageSource = "Textures/SAM-A-5";
                break;

            case Scale.Dominance:
                imageSource = "Textures/SAM-D-5";
                break;

            case Scale.Custom:
                imageSource = q.Image;
                break;
            }
            image.GetComponent <Image>().overrideSprite = Resources.Load <Sprite>(imageSource);

            if (!q.LabelledToggles)
            {
                var labels = scaleContent.transform.Find("Buttons").gameObject.GetComponentsInChildren <Text>();
                foreach (var label in labels)
                {
                    label.gameObject.SetActive(false);
                }
            }

            var qmb = _questionPlaceholder.GetComponent <QuestionMenuButtons>();

            //Set label
            _customContent.Find("extremesText").Find("extreme1").gameObject.GetComponent <Text>().text = q.LeftLabel;
            _customContent.Find("extremesText").Find("extreme2").gameObject.GetComponent <Text>().text = q.RightLabel;

            var buttons = _customContent.Find("Buttons");

            for (var i = 0; i < q.NColumns; i++)
            {
                var btn = buttons.Find("ToggleButtons" + i).GetComponent <Toggle>();

                var iLocal = i;
                btn.onValueChanged.AddListener(isOn =>
                {
                    qmb.SetAnswerInt(iLocal, isOn?1:0);
                });
                btn.isOn = _oldAnswers != null && _oldAnswers.ContainsKey(i);
            }
        }