protected async override Task HandleInnerAsync(SurveyAnswerReadContext context)
        {
            using (HttpClient client = new HttpClient())
            {
                var response = await client.GetAsync($"api/case/{context.CaseId}/vaccinehistory");

                response.EnsureSuccessStatusCode();

                var vaccines = response.Content.ReadAsAsync <VaccineHistoryDto>();

                context.SetAnswer(vaccines);
            }
        }
예제 #2
0
        protected override async Task HandleInnerAsync(SurveyAnswerReadContext context)
        {
            using (HttpClient client = new HttpClient())
            {
                var response = await client.GetAsync($"api/case/{context.CaseId}/symptoms");

                response.EnsureSuccessStatusCode();

                var symptoms = response.Content.ReadAsAsync <CaseSymptomDto>();

                context.SetAnswer(symptoms);
            }
        }
예제 #3
0
        protected async override Task HandleInnerAsync(SurveyAnswerReadContext context)
        {
            using (HttpClient client = new HttpClient())
            {
                var response = await client.GetAsync($"api/case/{context.CaseId}/healthcarevisits");

                response.EnsureSuccessStatusCode();

                var visits = response.Content.ReadAsAsync <HealthCareVisitDto>();

                context.SetAnswer(visits);
            }
        }
예제 #4
0
        protected async override Task HandleInnerAsync(SurveyAnswerReadContext context)
        {
            using (HttpClient client = new HttpClient())
            {
                var response = await client.GetAsync($"api/case/{context.CaseId}/epilinks");

                response.EnsureSuccessStatusCode();

                var epiLinks = response.Content.ReadAsAsync <EpiLinkDto>();

                context.SetAnswer(epiLinks);
            }
        }
예제 #5
0
        protected async override Task HandleInnerAsync(SurveyAnswerReadContext context)
        {
            //need to handle multi-select and check groups
            //go get the answer from survey answers where survey instance and question are the same
            var existingAnswers = await context.DB.SurveyAnswers
                                  .Where(answer => answer.IdQuestion == context.CurrentKey &&
                                         answer.IdSurveyInstance == context.SurveyInstanceId)
                                  .ToListAsync();

            if (context.IsSingle)
            {
                if (existingAnswers.Any())
                {
                    context.SetAnswer(existingAnswers[0].DsAnswer);
                }
            }
            else
            {
                var answers = existingAnswers
                              .Select(a => a.DsAnswer)
                              .ToList();
                context.SetAnswer(answers);
            }
        }
예제 #6
0
        protected async override Task HandleInnerAsync(SurveyAnswerReadContext context)
        {
            var questions = context.CurrentItem.Items.GetAll("question").
                            Select(item => item.Id).
                            ToList();

            var existingAnswers = await context.DB.SurveyAnswers
                                  .Where(answer => questions.Contains(answer.IdQuestion) &&
                                         answer.IdSurveyInstance == context.SurveyInstanceId).ToListAsync();

            int nRows = existingAnswers
                        .Select(x => x.IdQuestionSub).Max() ?? 0;

            //var jArray = new List<object>();

            //for (int i= 0; i <= nRows; i++)
            //{
            //    dynamic jObject = new ExpandoObject();
            //    jObject.index = i;
            //    foreach (var question in questions)
            //    {
            //        string answer = existingAnswers
            //            .Where(x => x.IdQuestion == question && x.IdQuestionSub == i)
            //            .Select(x => x.DsAnswer)
            //            .FirstOrDefault();
            //        //JProperty jProp = new JProperty(question, answer);
            //        ((IDictionary <string, object>) jObject)[question] = answer;
            //    }
            //    jArray.Add(jObject);
            //}
            var jArray = new JArray();

            for (int i = 0; i <= nRows; i++)
            {
                dynamic jObject = new JObject();
                jObject.index = i;
                foreach (var question in questions)
                {
                    string answer = existingAnswers
                                    .Where(x => x.IdQuestion == question && x.IdQuestionSub == i)
                                    .Select(x => x.DsAnswer)
                                    .FirstOrDefault();
                    jObject.Add(question, answer);
                }
                jArray.Add(jObject);
            }
            context.SetAnswer(jArray);
        }
예제 #7
0
        protected override Task HandleInnerAsync(SurveyAnswerReadContext context)
        {
            context.SetAnswer(string.Empty);

            return(Task.CompletedTask);
        }