Example #1
0
        private async Task <Guid> SaveQuestion(BaseQuestionModel data, bool IsAllowMultipleOptionAnswers, Guid?optionGroupId, Guid typeid, Guid?ParentId)
        {
            QuestionsDto questionDto = new QuestionsDto()
            {
                Name                       = data.Text,
                ParentId                   = ParentId != null ? ParentId : null,
                Description                = data.Description,
                Required                   = data.Required,
                OrderNo                    = data.Order,
                AdditionalAnswer           = data.IsAdditionalAnswer,
                AllowMultipleOptionAnswers = false,
                InputTypesId               = typeid,
                PageId                     = pageId,
                OptionGroupId              = optionGroupId
            };

            using (var uow = UowProvider.CreateUnitOfWork())
            {
                Questions questionEntity     = Mapper.Map <QuestionsDto, Questions>(questionDto);
                var       repositoryQuestion = uow.GetRepository <Questions, Guid>();
                await repositoryQuestion.AddAsync(questionEntity);

                await uow.SaveChangesAsync();

                return(questionEntity.Id);
            }
        }
Example #2
0
        private BaseQuestionModel GetGridRadioQuestion(QuestionsDto questionDto, string type)
        {
            var rowQuestions     = GetListByBaseQuestion(questionDto.Id).Result;
            var colOptionChoises = _optionChoiceService.GetListByOptionGroup(questionDto.OptionGroupId).Result;
            GridRadioQuestionModel gridQuestion = new GridRadioQuestionModel()
            {
                Id                 = questionDto.Id.ToString(),
                Text               = questionDto.Name,
                Order              = questionDto.OrderNo,
                ControlType        = type,
                Description        = questionDto.Description,
                IsAdditionalAnswer = questionDto.AdditionalAnswer,
                Required           = questionDto.Required,
                Grid               = new GridOptionsModel()
                {
                    Rows = new List <ItemModel>(),
                    Cols = colOptionChoises
                }
            };

            foreach (var row in rowQuestions)
            {
                ItemModel item = new ItemModel()
                {
                    Id    = row.Id.ToString(),
                    Label = "",
                    Value = row.Name,
                    Order = 0 // stub
                };
                gridQuestion.Grid.Rows.Add(item);
            }
            return(gridQuestion as BaseQuestionModel);
        }
        private QuestionsDto FormDto(List <Question> a, int count)
        {
            var array  = _mapper.Map <IEnumerable <Question>, IEnumerable <QuestionDto> >(a);
            var result = new QuestionsDto
            {
                CountQuestions = count,
                QuestionsArray = array
            };

            return(result);
        }
Example #4
0
 public async Task <IActionResult> IsActive(QuestionsDto questionsDto)
 {
     if (questionsDto.IsActive)
     {
         questionsDto.IsActive = false;
         await _repoQuestions.UpdateAsync(_mapper.Map <Questions>(questionsDto));
     }
     else
     {
         questionsDto.IsActive = true;
         await _repoQuestions.UpdateAsync(_mapper.Map <Questions>(questionsDto));
     }
     return(Ok(questionsDto));
 }
Example #5
0
        private BaseQuestionModel GetTextareaQuestion(QuestionsDto questionDto, string type)
        {
            TextAreaQuestionModel textareaQuestion = new TextAreaQuestionModel()
            {
                Id                 = questionDto.Id.ToString(),
                Text               = questionDto.Name,
                Order              = questionDto.OrderNo,
                ControlType        = type,
                Description        = questionDto.Description,
                IsAdditionalAnswer = questionDto.AdditionalAnswer,
                Required           = questionDto.Required,
            };

            return(textareaQuestion as BaseQuestionModel);
        }
Example #6
0
        private BaseQuestionModel GetDropdownQuestion(QuestionsDto questionDto, string type)
        {
            var options = _optionChoiceService.GetListByOptionGroup(questionDto.OptionGroupId).Result;
            DropdownQuestionModel dropdownQuestion = new DropdownQuestionModel()
            {
                Id                 = questionDto.Id.ToString(),
                Text               = questionDto.Name,
                Order              = questionDto.OrderNo,
                ControlType        = type,
                Description        = questionDto.Description,
                IsAdditionalAnswer = questionDto.AdditionalAnswer,
                Required           = questionDto.Required,
                Options            = options
            };

            return(dropdownQuestion as BaseQuestionModel);
        }
Example #7
0
        public IActionResult Create([FromBody] QuestionsDto questionsdto)
        {
            if (questionsdto == null)
            {
                return(BadRequest(new { message = "Bad request" }));
            }

            try
            {
                // map dto to entity
                var question = _mapper.Map <Questions>(questionsdto);
                question.CreatedOn = DateTime.Now;
                _questionService.Create(question);
                var questionoptions = questionsdto.Qoptions;
                foreach (var item in questionoptions)
                {
                    var option = _mapper.Map <QuestionOption>(item);
                    option.CreatedOn  = DateTime.Now;
                    option.QuestionId = question.Id;
                    _optionservice.Create(option);
                }

                var questionResult = _mapper.Map <QuestionsDto>(question);
                var options        = _optionservice.GetByQuestionId(question.Id);
                List <QuestionOptionDto> questionoptdto = new List <QuestionOptionDto>();
                foreach (var questionopt in options)
                {
                    questionoptdto.Add(_mapper.Map <QuestionOptionDto>(questionopt));
                }
                questionResult.Qoptions = questionoptdto;
                return(Ok(questionResult));
            }
            catch (Exception ex)
            {
                // return error message if there was an exception
                return(BadRequest(new { message = ex.Message }));
            }
        }
Example #8
0
        public async Task <IActionResult> Update(QuestionsDto questionsDto)
        {
            await _repoQuestions.UpdateAsync(_mapper.Map <Questions>(questionsDto));

            return(NoContent());
        }
Example #9
0
        public async Task <IActionResult> Save(QuestionsDto questionsDto)
        {
            var newQuestion = await _repoQuestions.InsertAsync(_mapper.Map <Questions>(questionsDto));

            return(Created(new Uri(Request.Path, UriKind.Relative), newQuestion));
        }