public async void FillCheckCapacitySummaryResult_WithDistanceInMetric_ConvertsToMiles() { var fakeResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("{CheckCapacitySummaryResult: [{}]}") }; _mockRestfulHelper.Setup(r => r.PostAsync(It.IsAny <string>(), It.IsAny <HttpRequestMessage>())) .Returns(Task <HttpResponseMessage> .Factory.StartNew(() => fakeResponse)); _mockRestfulHelper.Setup(r => r.GetAsync(It.IsAny <string>())).Returns(Task <string> .Factory.StartNew(() => "0")); var model = new DosViewModel { SearchDistance = 1, DosCheckCapacitySummaryResult = new DosCheckCapacitySummaryResult() { Success = new SuccessObject <ServiceViewModel>() { Services = new List <ServiceViewModel>() } } }; await _dosBuilder.FillCheckCapacitySummaryResult(model, true); _mockRestfulHelper.Verify(r => r.PostAsync(It.IsAny <string>(), It.Is <HttpRequestMessage>(h => AssertIsMetric(h, model.SearchDistance)))); }
public async Task <DosViewModel> FillServiceDetailsBuilder(DosViewModel model) { var jObj = (JObject)JsonConvert.DeserializeObject(model.CheckCapacitySummaryResultListJson); model.CheckCapacitySummaryResultList = jObj["CheckCapacitySummaryResult"].ToObject <CheckCapacitySummaryResult[]>(); var selectedService = model.CheckCapacitySummaryResultList.FirstOrDefault(x => x.IdField == Convert.ToInt32(model.SelectedService)); var itkMessage = await _cacheManager.Read(model.UserId.ToString()); var document = XDocument.Parse(itkMessage); var serviceDetials = document.Root.Descendants("ServiceDetails").FirstOrDefault(); serviceDetials.Element("id").SetValue(selectedService.IdField.ToString()); serviceDetials.Element("name").SetValue(selectedService.NameField.ToString()); serviceDetials.Element("odsCode").SetValue(selectedService.OdsCodeField.ToString()); serviceDetials.Element("contactDetails").SetValue(selectedService.ContactDetailsField ?? ""); serviceDetials.Element("address").SetValue(selectedService.AddressField.ToString()); serviceDetials.Element("postcode").SetValue(selectedService.PostcodeField.ToString()); _cacheManager.Set(model.UserId.ToString(), document.ToString()); _notifier.Notify(_configuration.IntegrationApiItkDispatcher, model.UserId.ToString()); model.CheckCapacitySummaryResultList = new CheckCapacitySummaryResult[] { selectedService }; model.CareAdvices = await _careAdviceBuilder.FillCareAdviceBuilder(Int32.Parse(model.Age), model.Gender, model.CareAdviceMarkers.ToList()); return(model); }
public async void FillCheckCapacitySummaryResult_WithDistanceInMetric_ConvertsToMiles() { var fakeContent = "{DosCheckCapacitySummaryResult: [{}]}"; var response = new Mock <IRestResponse <DosCheckCapacitySummaryResult> >(); response.Setup(_ => _.IsSuccessful).Returns(true); response.Setup(_ => _.StatusCode).Returns(HttpStatusCode.OK); response.Setup(_ => _.Data).Returns(JsonConvert.DeserializeObject <DosCheckCapacitySummaryResult>(fakeContent)); response.Setup(_ => _.Content).Returns(fakeContent); _mockRestClient.Setup(r => r.ExecuteAsync <DosCheckCapacitySummaryResult>(It.Is <IRestRequest>(rq => rq.Method == Method.POST))) .ReturnsAsync(response.Object); var model = new DosViewModel { SearchDistance = 1, DosCheckCapacitySummaryResult = new DosCheckCapacitySummaryResult() { Success = new SuccessObject <ServiceViewModel>() { Services = new List <ServiceViewModel>() } } }; await _dosBuilder.FillCheckCapacitySummaryResult(model, true, null); _mockRestClient.Verify(r => r.ExecuteAsync <DosCheckCapacitySummaryResult>(It.Is <RestRequest>(h => AssertIsMetric(h, model.SearchDistance)))); }
public void LogDosRequest(OutcomeViewModel model, DosViewModel dosViewModel) { var audit = model.ToAuditEntry(); var auditedDosViewModel = Mapper.Map <AuditedDosRequest>(dosViewModel); audit.DosRequest = JsonConvert.SerializeObject(auditedDosViewModel); Log(audit); }
public async Task LogDosRequest(OutcomeViewModel model, DosViewModel dosViewModel) { var audit = model.ToAuditEntry(new HttpSessionStateWrapper(HttpContext.Current.Session)); var auditedDosViewModel = Mapper.Map <AuditedDosRequest>(dosViewModel); audit.DosRequest = JsonConvert.SerializeObject(auditedDosViewModel); await Log(audit); }
public async Task <ActionResult> Search() { var model = new DosViewModel(); model.Dispositions = await ListDispositions(); return(View(model)); }
public void Postcode_partial_returns_part_postcode() { var sut = new DosViewModel { PostCode = "So30" }; var audit = Mapper.Map <DosViewModel, AuditedDosRequest>(sut); Assert.AreEqual("So30", audit.PostCode); }
public void Postcode_mixed_case_with_no_space_returns_part_postcode() { var sut = new DosViewModel { PostCode = "So302Un" }; var audit = Mapper.Map <DosViewModel, AuditedDosRequest>(sut); Assert.AreEqual("So30", audit.PostCode); }
public async Task <ActionResult> FillServiceDetails(DosViewModel model, bool?filterServices) { model.SymptomDiscriminatorList = new[] { model.SymptomDiscriminator }; var dosView = new DosViewModel { DosCheckCapacitySummaryResult = (await _dosBuilder.FillCheckCapacitySummaryResult(model, filterServices.HasValue ? filterServices.Value : true, null)), DosServicesByClinicalTermResult = (await _dosBuilder.FillDosServicesByClinicalTermResult(model)) }; return(PartialView("_DoSComparisionResultsView", dosView)); }
private async Task <Surgery> GetSelectedSurgery(DosViewModel model) { var surgery = new Surgery(); if (!string.IsNullOrEmpty(model.SelectedSurgery)) { surgery = JsonConvert.DeserializeObject <Surgery>( await _restfulHelper.GetAsync(string.Format(_configuration.GPSearchApiUrl, model.SelectedSurgery))); } else { surgery.SurgeryId = "UKN"; } return(surgery); }
public async Task <DosCheckCapacitySummaryResult> FillCheckCapacitySummaryResult(DosViewModel dosViewModel, bool filterServices, DosEndpoint?endpoint) { var checkCapacitySummaryUrl = string.Format("{0}?filterServices={1}&endpoint={2}", _configuration.BusinessDosApiCheckCapacitySummaryUrl, filterServices, endpoint); var dosFilterdCase = dosViewModel as DosFilteredCase; var request = new JsonRestRequest(checkCapacitySummaryUrl, Method.POST); request.AddJsonBody(dosFilterdCase); _logger.Debug(string.Format("DOSBuilder.FillCheckCapacitySummaryResult(): URL: {0} BODY: {1}", checkCapacitySummaryUrl, JsonConvert.SerializeObject(dosFilterdCase))); var response = await _restClient.ExecuteAsync <DosCheckCapacitySummaryResult>(request); if (!response.IsSuccessful || response.Data.Error != null) { return(response.Data); } var services = new List <ServiceViewModel>(); if (response.Data.Success != null) { var checkCapacitySummaryResults = JsonConvert.SerializeObject(response.Data.Success.Services); var jArray = (JArray)JsonConvert.DeserializeObject(checkCapacitySummaryResults); services = jArray.ToObject <List <ServiceViewModel> >(); } var checkCapacitySummaryResult = new DosCheckCapacitySummaryResult() { Success = new SuccessObject <ServiceViewModel>() { Code = (int)response.StatusCode, Services = FilterCallbackEnabled(services) } }; return(checkCapacitySummaryResult); }
public async Task <DosServicesByClinicalTermResult> FillDosServicesByClinicalTermResult(DosViewModel dosViewModel) { /* * dosViewModel.SymptomGroup = await BuildSymptomGroup(dosViewModel.JourneyJson); * * var request = BuildRequestMessage(dosViewModel); * var response = await _restfulHelper.PostAsync(_configuration.BusinessDosServicesByClinicalTermUrl, request); * * if (response.StatusCode != HttpStatusCode.OK) return new DosServicesByClinicalTermResult[0]; * * var val = await response.Content.ReadAsStringAsync(); * var jObj = (JObject)JsonConvert.DeserializeObject(val); * var result = jObj["DosServicesByClinicalTermResult"]; * return result.ToObject<DosServicesByClinicalTermResult[]>(); */ //USE UNTIL BUSINESS API IS AVAILABLE //#########################START################### //map doscase to dosservicesbyclinicaltermrequest var requestObj = Mapper.Map <DosServicesByClinicalTermRequest>(dosViewModel); requestObj.GpPracticeId = await GetPracticeIdFromSurgeryId(dosViewModel.Surgery); return (await GetMobileDoSResponse <DosServicesByClinicalTermResult>( "services/byClinicalTerm/{0}/{1}/{2}/{3}/{4}/{5}/{6}/{7}/{8}", requestObj.CaseId, requestObj.Postcode, requestObj.SearchDistance, requestObj.GpPracticeId, requestObj.Age, requestObj.Gender, requestObj.Disposition, requestObj.SymptomGroupDiscriminatorCombos, requestObj.NumberPerType)); //################################END################ }
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); }
public async Task <ActionResult> FillServiceDetails(DosViewModel model) { return(View("../DOS/Confirmation", await _dosBuilder.FillServiceDetailsBuilder(model))); }