public async Task <bool> addQuestionnaireSymptoms(QuestionnaireDto questionnaire, int idQuestionnaire)
        {
            conn.Open();
            List <string> keyList = new List <string>(questionnaire.symptoms.Keys);
            int           result  = -1;

            foreach (string key in keyList)
            {
                string       sql = "insert into questionnairesymptoms(idQuestionnaireSymptoms, symptomName, symptomSeverity) values (@idQuestionnaireSymptoms, @symptomName, @symptomSeverity);";
                MySqlCommand cmd = new MySqlCommand(sql, conn);

                cmd.Parameters.AddWithValue("@idQuestionnaireSymptoms", idQuestionnaire);
                cmd.Parameters.AddWithValue("@symptomName", key);
                cmd.Parameters.AddWithValue("@symptomSeverity", questionnaire.symptoms[key]);
                cmd.Prepare();

                result = await Task.Run(() =>
                {
                    return(cmd.ExecuteNonQuery());
                });

                if (result == 0)
                {
                    return(false);
                }
            }

            return(true);
        }
        public List <Questionnaires> CreateQuestionnaire(QuestionnaireDto questionnaireLDto, int formId)
        {
            var questionnaireList = new List <Questionnaires>();

            if (questionnaireLDto == null)
            {
                return(null);
            }
            var listTitle = CreateQuestionnaireTitle(questionnaireLDto.Header);

            if (listTitle == null)
            {
                return(null);
            }
            foreach (var item in questionnaireLDto.Body)
            {
                var i = 0;
                foreach (var item2 in item.Data)
                {
                    var questionnaire = new Questionnaires
                    {
                        FormId = formId,
                        RId    = item.Rid,
                        Answer = item2,
                        Title  = listTitle[i]
                    };
                    questionnaireList.Add(questionnaire);
                    i++;
                }
            }
            return(questionnaireList);
        }
示例#3
0
        /// <summary>
        /// Convert Questionnaire entity to QuestionnaireDto.
        /// </summary>
        public static QuestionnaireDto ToDto(this Questionnaire questionnaire)
        {
            var questionnaireDto = new QuestionnaireDto()
            {
                Id    = questionnaire.Id,
                Title = questionnaire.Title
            };

            foreach (var question in questionnaire.Questions)
            {
                questionnaireDto.Questions.Add(new QuestionDto <AnswerDto>()
                {
                    Id           = question.Id,
                    Text         = question.Text,
                    IsFewAnswers = question.IsFewAnswers,
                });

                foreach (var answer in question.Answers)
                {
                    questionnaireDto.Questions.Last().Answers.Add(new AnswerDto()
                    {
                        Id   = answer.Id,
                        Text = answer.Text
                    });
                }
            }
            return(questionnaireDto);
        }
        public async Task <IActionResult> Post([FromBody] QuestionnaireDto questionnaire)
        {
            ServiceResponse <Dictionary <string, string> > response = await questionnaireService.addQuestionnaire(questionnaire);

            if (response.Success)
            {
                return(Ok(response));
            }
            return(BadRequest(response));
        }
        public static QuestionnaireDto MakeDto(Core.Questionnaire questionnaire)
        {
            var dto = new QuestionnaireDto();

            dto.Identity           = questionnaire.Id;
            dto.Name               = questionnaire.Name;
            dto.Version            = questionnaire.Version;
            dto.Css                = questionnaire.Css;
            dto.LockQuestion       = questionnaire.LockQuestion;
            dto.EnablePrevious     = questionnaire.EnablePrevious;
            dto.FooterLabel        = questionnaire.FooterLabel;
            dto.RedirectOnCloseUrl = questionnaire.RedirectOnCloseUrl;
            dto.Slides             = CreateSlides(questionnaire.Slides).ToList();
            dto.CurrentSlideIndex  = questionnaire.NextSlide();

            return(dto);
        }
        public async Task <ServiceResponse <Dictionary <string, string> > > addQuestionnaire(QuestionnaireDto questionnaire)
        {
            ServiceResponse <Dictionary <string, string> > response = new ServiceResponse <Dictionary <string, string> >();

            if (questionnaire.symptoms.Count == 0)
            {
                response.Message = "Symptoms are missing";
                response.Success = false;
                return(response);
            }

            int idQuestionnaire = await questionnaireDAO.addQuestionnaire(questionnaire.username, 50);

            if (idQuestionnaire == -1)
            {
                response.Message = "Could not add the questionnaire!";
                response.Success = false;
                return(response);
            }

            bool resultQuestionnaireSymptoms = await questionnaireDAO.addQuestionnaireSymptoms(questionnaire, idQuestionnaire);

            Dictionary <string, string> data = new Dictionary <string, string>();

            if (!resultQuestionnaireSymptoms)
            {
                //rollback insert in questionnaire
                //rollback insert in questionnaire
                if (await questionnaireDAO.rollbackAddQuestionnaire(idQuestionnaire))
                {
                    response.Message = "Could not add the questionnaire, rolled back the inserted values!";
                    response.Success = false;
                    return(response);
                }

                response.Message = "Could not add the questionnaire, rolled back unsuccesfully!";
                response.Success = false;
                return(response);
            }

            data.Add("result", "add something here");

            //implement AI calculation based on responses
            //add details to response.Data

            response.Data = data;

            return(response);
        }
示例#7
0
 public QuestionnaireDtoBuilder()
 {
     _questionnaireDto = WithDefaults();
 }
示例#8
0
 public async Task <IActionResult> Put([FromBody] QuestionnaireDto questionnaire)
 {
     return(Success(await _questionnaireService.CreateAsync(questionnaire)));
 }
示例#9
0
        public async Task <IActionResult> Post([FromBody] QuestionnaireDto questionnaire)
        {
            await _questionnaireService.UpdateAsync(questionnaire);

            return(Success());
        }