Exemplo n.º 1
0
        public async Task <HttpResponseMessage> GetServices(HttpRequestMessage request, DosEndpoint?endpoint)
        {
            var url = _configuration.DomainDosApiCheckCapacitySummaryUrl;

            if (!endpoint.HasValue)
            {
                return(await _restfulHelper.PostAsync(url, request));
            }

            var prefix = url.Contains("?") ? "&" : "?";

            url = string.Format("{0}{1}{2}{3}", url, prefix, "endpoint=", endpoint);
            return(await _restfulHelper.PostAsync(url, request));
        }
Exemplo n.º 2
0
        public async Task <HttpResponseMessage> CheckCapacitySummary(HttpRequestMessage request)
        {
            var values   = HttpUtility.ParseQueryString(request.RequestUri.Query);
            var endpoint = _configuration.DOSIntegrationCheckCapacitySummaryUrl;

            if (values["endpoint"] == null)
            {
                return(await _restfulHelper.PostAsync(endpoint, request));
            }

            var prefix = endpoint.Contains("?") ? "&" : "?";

            endpoint = string.Format("{0}{1}{2}{3}", endpoint, prefix, "endpoint=", values["endpoint"]);
            return(await _restfulHelper.PostAsync(endpoint, request));
        }
Exemplo n.º 3
0
        public async Task <FeedbackConfirmation> FeedbackBuilder(FeedbackViewModel feedback)
        {
            var model = new FeedbackConfirmation();

            var request = new HttpRequestMessage {
                Content = new StringContent(JsonConvert.SerializeObject(feedback), Encoding.UTF8, "application/json")
            };
            var httpHeaders = new Dictionary <string, string>();

            httpHeaders.Add("Authorization", _configuration.FeedbackAuthorization);
            var response = await _restfulHelper.PostAsync(_configuration.FeedbackAddFeedbackUrl, request, httpHeaders);

            if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Created)
            {
                model.Message = "Thank you for your time in helping to improve our service.";
                model.Success = true;
            }
            else
            {
                model.Message = "Feedback did not submit, please try again later";
                model.Success = false;
            }

            return(model);
        }
Exemplo n.º 4
0
        public async Task <DosViewModel> DosResultsBuilder(OutcomeViewModel outcomeViewModel)
        {
            var model   = _mappingEngine.Map <DosViewModel>(outcomeViewModel);
            var surgery = await GetSelectedSurgery(model);

            var capacitySummaryRequest = await BuildCheckCapacitySummaryRequest(outcomeViewModel, surgery);

            var request = new HttpRequestMessage {
                Content = new StringContent(JsonConvert.SerializeObject(capacitySummaryRequest), Encoding.UTF8, "application/json")
            };
            var response = await _restfulHelper.PostAsync(_configuration.BusinessDosCheckCapacitySummaryUrl, request);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var val = await response.Content.ReadAsStringAsync();

                model.CheckCapacitySummaryResultListJson = HttpUtility.HtmlDecode(val);
                var jObj   = (JObject)JsonConvert.DeserializeObject(val);
                var result = jObj["CheckCapacitySummaryResult"];
                model.CheckCapacitySummaryResultList = result.ToObject <CheckCapacitySummaryResult[]>();
            }
            else
            {
                model.CheckCapacitySummaryResultList = new CheckCapacitySummaryResult[0];
            }

            return(model);
        }
Exemplo n.º 5
0
        public async Task <HttpResponseMessage> GetNextQuestion(string id, string nodeLabel, string answer)
        {
            var request = new HttpRequestMessage {
                Content = new StringContent(JsonConvert.SerializeObject(answer), Encoding.UTF8, "application/json")
            };

            return(await _restfulHelper.PostAsync(_configuration.GetDomainApiNextQuestionUrl(id, nodeLabel), request));
        }
Exemplo n.º 6
0
        public void Notify(string url, string id)
        {
            var request = new HttpRequestMessage {
                Content = new StringContent(id, Encoding.UTF8, "application/json")
            };

            _restfulHelper.PostAsync(url, request);
        }
Exemplo n.º 7
0
        private async Task <HttpResponseMessage> SendItkMessage(ITKDispatchRequest itkRequestData)
        {
            var request = new HttpRequestMessage
            {
                Content = new StringContent(JsonConvert.SerializeObject(itkRequestData), Encoding.UTF8, "application/json")
            };
            var response = await _restfulHelper.PostAsync(_configuration.ItkDispatchApiUrl, request);

            return(response);
        }
Exemplo n.º 8
0
        private async Task <QuestionWithAnswers> GetNextNode(JourneyViewModel model)
        {
            var answer  = JsonConvert.DeserializeObject <Answer>(model.SelectedAnswer);
            var request = new HttpRequestMessage {
                Content =
                    new StringContent(JsonConvert.SerializeObject(answer.Title), Encoding.UTF8, "application/json")
            };
            var serialisedState        = HttpUtility.UrlEncode(JsonConvert.SerializeObject(model.State));
            var businessApiNextNodeUrl = _configuration.GetBusinessApiNextNodeUrl(model.PathwayId, model.Id,
                                                                                  serialisedState);
            var response = await _restfulHelper.PostAsync(businessApiNextNodeUrl, request);

            return(JsonConvert.DeserializeObject <QuestionWithAnswers>(await response.Content.ReadAsStringAsync()));
        }
Exemplo n.º 9
0
        public async Task <string> GetCareAdvice(string ageCategory, string gender, string keywords, string dxCode)
        {
            var request = new HttpRequestMessage {
                Content = new StringContent(JsonConvert.SerializeObject(keywords), Encoding.UTF8, "application/json")
            };
            var domainApiCareAdviceUrl = _configuration.GetDomainApiCareAdviceUrl(dxCode, ageCategory, gender);
            var response = await _restfulHelper.PostAsync(domainApiCareAdviceUrl, request);

            if (!response.IsSuccessStatusCode)
            {
                throw new Exception(string.Format("A problem occured requesting {0}. {1}", domainApiCareAdviceUrl, await response.Content.ReadAsStringAsync()));
            }

            return(await response.Content.ReadAsStringAsync());
        }
Exemplo n.º 10
0
        public async Task <DosCheckCapacitySummaryResult> FillCheckCapacitySummaryResult(DosViewModel dosViewModel, bool filterServices)
        {
            const int PHARMACY           = 13;
            const int PHARMACY_EXT_HOURS = 116;

            var request = BuildRequestMessage(dosViewModel);
            var body    = await request.Content.ReadAsStringAsync();

            string checkCapacitySummaryUrl = string.Format("{0}?filterServices={1}", _configuration.BusinessDosCheckCapacitySummaryUrl, filterServices);

            _logger.Debug(string.Format("DOSBuilder.FillCheckCapacitySummaryResult(): URL: {0} BODY: {1}", checkCapacitySummaryUrl, body));
            var response = await _restfulHelper.PostAsync(checkCapacitySummaryUrl, request);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                return new DosCheckCapacitySummaryResult {
                           Error = new ErrorObject()
                           {
                               Code = (int)response.StatusCode, Message = response.ReasonPhrase
                           }
                }
            }
            ;

            var val = await response.Content.ReadAsStringAsync();

            var jObj     = (JObject)JsonConvert.DeserializeObject(val);
            var results  = jObj["CheckCapacitySummaryResult"];
            var services = results.ToObject <List <ServiceViewModel> >();

            var checkCapacitySummaryResult = new DosCheckCapacitySummaryResult()
            {
                Success = new SuccessObject <ServiceViewModel>()
                {
                    Code     = (int)response.StatusCode,
                    Services = DetermineCallbackEnabled(services)
                }
            };

            var isPharmacy = new Func <DosService, bool>(s => s.ServiceType != null && (s.ServiceType.Id == PHARMACY || s.ServiceType.Id == PHARMACY_EXT_HOURS));

            if (checkCapacitySummaryResult.Success.Services.Any(isPharmacy))
            {
                checkCapacitySummaryResult.Success.Services = checkCapacitySummaryResult.Success.Services.Take(6).ToList();
            }

            return(checkCapacitySummaryResult);
        }
Exemplo n.º 11
0
        public async Task <IEnumerable <CareAdvice> > FillCareAdviceBuilder(string dxCode, string ageGroup, string gender, IList <string> careAdviceKeywords)
        {
            if (!careAdviceKeywords.Any())
            {
                return(Enumerable.Empty <CareAdvice>());
            }

            var request = new HttpRequestMessage {
                Content = new StringContent(JsonConvert.SerializeObject(GenerateKeywordsList(careAdviceKeywords)), Encoding.UTF8, "application/json")
            };

            var businessApiInterimCareAdviceUrl = _configuration.GetBusinessApiInterimCareAdviceUrl(dxCode, ageGroup, gender);
            var responseMessage = await _restfulHelper.PostAsync(businessApiInterimCareAdviceUrl, request);

            CheckResponse(responseMessage);

            var response = await responseMessage.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <List <CareAdvice> >(response));
        }
        public async Task <FeedbackConfirmation> FeedbackBuilder(FeedbackViewModel feedback)
        {
            feedback.DateAdded = DateTime.Now;
            feedback.PageData  = await _pageDateViewModelBuilder.PageDataBuilder(feedback.PageData);

            feedback.PageId = feedback.PageData.ToString();
            try {
                var request = new HttpRequestMessage {
                    Content = new StringContent(JsonConvert.SerializeObject(feedback), Encoding.UTF8, "application/json")
                };
                var httpHeaders = new Dictionary <string, string> {
                    { "Authorization", _configuration.FeedbackAuthorization }
                };
                var response = await _restfulHelper.PostAsync(_configuration.FeedbackAddFeedbackUrl, request, httpHeaders);

                if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Created)
                {
                    return(FeedbackConfirmation.Success);
                }
            } catch {
                return(FeedbackConfirmation.Error);
            }
            return(FeedbackConfirmation.Error);
        }
Exemplo n.º 13
0
 public async Task <HttpResponseMessage> CheckCapacitySummary(HttpRequestMessage request)
 {
     return(await _restfulHelper.PostAsync(_configuration.DOSIntegrationCheckCapacitySummaryUrl, request));
 }
Exemplo n.º 14
0
 public async Task <HttpResponseMessage> GetServices(HttpRequestMessage request)
 {
     return(await _restfulHelper.PostAsync(_configuration.DomainDosApiCheckCapacitySummaryUrl, request));
 }