public static MultipleChoiceOptionDTO MapFrom(this MultipleChoiceOption entity)
        {
            if (entity == null)
            {
                throw new Exception(ExceptionMessages.EntityNotFound);
            }

            return(new MultipleChoiceOptionDTO
            {
                OptionDescription = entity.Option
            });
        }
Beispiel #2
0
        public static T ToEnum <T>(this MultipleChoiceOption multipleChoiceOption) where T : struct, Enum
        {
            if (!Enum.TryParse(Capitalize(multipleChoiceOption.Codename), out T parsedEnum))
            {
                //If simple capitalization failed, try ignoring case.
                Enum.TryParse(multipleChoiceOption.Codename, true, out parsedEnum);
            }

            Enum.TryParse(multipleChoiceOption.Codename, true, out parsedEnum);

            return(parsedEnum);
        }
        private static List <MultipleChoiceOption> CreateObjectFromListMultipleChoiceOption(List <Dictionary <string, string> > options)
        {
            List <MultipleChoiceOption> newList = new List <MultipleChoiceOption>();

            foreach (var item in options)
            {
                if (item.Count > 0)
                {
                    var newMultipleChoiceOption = new MultipleChoiceOption();
                    newMultipleChoiceOption.Id     = Guid.Parse(item["Id"]);
                    newMultipleChoiceOption.Option = item["Option"];
                    newMultipleChoiceOption.MultipleChoiceQuestionId = Guid.Parse(item["MultipleChoiceQuestionId"]);

                    newList.Add(newMultipleChoiceOption);
                }
            }
            return(newList);
        }
Beispiel #4
0
        /// <summary>
        ///     Adds another option to the vote
        /// </summary>
        /// <param name="input">A Open Text input, that is converted into a option</param>
        public void AddOption(OpenTextInput input)
        {
            lock (ThreadLock)
            {
                MultipleChoiceOption option = new MultipleChoiceOption
                {
                    Archive     = new List <MultipleChoiceVote>(),
                    Votes       = new List <MultipleChoiceVote>(),
                    Description = input.Description,
                    UserID      = input.UserID

                                  //Title = input.Title,
                };

                Options.Add(option);
            }

            EventStream();
        }
        public Questionnaire GetStoreModel()
        {
            // create store model questionnaire
            var questionnaire = new Questionnaire
            {
                Category      = _questionnairePostViewModel.Category,
                Version       = _questionnairePostViewModel.Version,
                Questions     = new Collection <Question>(),
                QuestionRules = new Collection <QuestionRule>()
            };

            // create stopre model questions and questionrules
            foreach (var viewModelQuestion in _questionnairePostViewModel.Questions)
            {
                var question = new Question
                {
                    QuestionTemplate = new Collection <Template>(),
                    Name             = viewModelQuestion.Key,
                    Type             = viewModelQuestion.Type,
                    Version          = viewModelQuestion.Version
                };

                var questionRule = new QuestionRule
                {
                    ExpressionModel = new Collection <ExpressionModel>(),
                    Name            = viewModelQuestion.Key,
                    HideQuestion    = viewModelQuestion.HideExpression
                };

                if (viewModelQuestion.ExpressionProperties != null)
                {
                    foreach (var(key, value) in viewModelQuestion.ExpressionProperties)
                    {
                        var expressionModel = new ExpressionModel
                        {
                            Key        = key,
                            Expression = value
                        };
                        questionRule.ExpressionModel.Add(expressionModel);
                    }
                }

                var globalTemplate = viewModelQuestion.TemplateOptions;

                foreach (var translation in globalTemplate.Translations)
                {
                    // check if question is required
                    questionRule.Required = globalTemplate.Required;

                    // Add all templateswith different languages to the template
                    var questionTemplate = new Template
                    {
                        Description = translation.Description,
                        InputType   = globalTemplate.Type,
                        Label       = translation.Label,
                        Language    = translation.Language,
                        Placeholder = translation.Placeholder,
                        Validations = new Collection <Validation>()
                    };

                    if (translation.Validation.Messages != null)
                    {
                        foreach (var(key, value) in translation.Validation.Messages)
                        {
                            var expressionModel = new Validation()
                            {
                                Type    = key,
                                Message = value
                            };
                            questionTemplate.Validations.Add(expressionModel);
                        }
                    }

                    if (translation.MultipleChoiceOptions != null)
                    {
                        questionTemplate.SelectAllOption = translation.SelectAllOption;
                        questionTemplate.AllowedToSelectMultipleOptions = globalTemplate.Multiple;
                        questionTemplate.Options = new Collection <MultipleChoiceOption>();

                        foreach (var option in translation.MultipleChoiceOptions)
                        {
                            var multipleChoiceOption = new MultipleChoiceOption
                            {
                                Value = option.Value,
                                Label = option.Label
                            };
                            questionTemplate.Options.Add(multipleChoiceOption);
                        }

                        question.QuestionTemplate.Add(questionTemplate);
                    }
                    else
                    {
                        question.QuestionTemplate.Add(questionTemplate);
                    }
                }

                questionnaire.Questions.Add(question);
                questionnaire.QuestionRules.Add(questionRule);
            }

            return(questionnaire);
        }