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); } }
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); } }
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); } }
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); } }
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); } }
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); }
protected override Task HandleInnerAsync(SurveyAnswerReadContext context) { context.SetAnswer(string.Empty); return(Task.CompletedTask); }