/// <summary> /// Maps the Provider response data to our ui friendly structure. /// </summary> /// <param name="courseInfo">The class to populate, must not be null.</param> /// <param name="courseDetailStructure">The response from the web service</param> private void MapProviderData(CourseInformation courseInfo, CourseDetailStructure courseDetailStructure) { if (courseDetailStructure.Provider != null) { ProviderSearchResult provider = new ProviderSearchResult(); provider.ProviderID = courseDetailStructure.Provider.ProviderID; provider.ProviderName = courseDetailStructure.Provider.ProviderName; provider.AddressLine1 = courseDetailStructure.Provider.ProviderAddress.Address_line_1; provider.AddressLine2 = courseDetailStructure.Provider.ProviderAddress.Address_line_2; provider.Town = courseDetailStructure.Provider.ProviderAddress.Town; provider.County = courseDetailStructure.Provider.ProviderAddress.County; provider.Postcode = courseDetailStructure.Provider.ProviderAddress.PostCode; provider.Email = courseDetailStructure.Provider.Email; provider.Website = courseDetailStructure.Provider.Website; provider.Phone = courseDetailStructure.Provider.Phone; provider.Fax = courseDetailStructure.Provider.Fax; provider.UKPRN = courseDetailStructure.Provider.UKPRN; provider.UPIN = courseDetailStructure.Provider.UPIN; provider.TFPlusLoans = courseDetailStructure.Provider.TFPlusLoans; provider.DFE1619Funded = courseDetailStructure.Provider.DFE1619Funded; provider.FEChoices_LearnerDestination = courseDetailStructure.Provider.FEChoices_LearnerDestinationSpecified ? courseDetailStructure.Provider.FEChoices_LearnerDestination : (Double?)null; provider.FEChoices_LearnerSatisfaction = courseDetailStructure.Provider.FEChoices_LearnerSatisfactionSpecified ? courseDetailStructure.Provider.FEChoices_LearnerSatisfaction : (Double?)null; provider.FEChoices_EmployerSatisfaction = courseDetailStructure.Provider.FEChoices_EmployerSatisfactionSpecified ? courseDetailStructure.Provider.FEChoices_EmployerSatisfaction : (Double?)null; courseInfo.Provider = provider; } }
public void WhenISelectMapOnTheFirstResult() { ProviderSearchResult firstResult = searchResultsPage.FirstSearchResult; locationMapPage = firstResult.ClickMap(); helper.SwitchToMostRecentPage(); }
public async Task SearchByPostCodeShouldReturnZeroResultsIfPostCodeIsIncorrect() { const string TestApprenticeshipId = "123-2-1"; const string TestPostCode = "AS3 4AA"; var stubSearchResults = new List <ProviderSearchResultItem> { new ProviderSearchResultItem(), new ProviderSearchResultItem() }; var searchResults = new ProviderSearchResult <ProviderSearchResultItem> { Hits = stubSearchResults, Total = 0 }; var framework = new Framework { FrameworkId = TestApprenticeshipId, FrameworkName = "Test framework name" }; ProviderSearchServiceBuilder builder = new ProviderSearchServiceBuilder() .SetupFrameworkRepository(x => x.GetFrameworkById(It.IsAny <string>()), framework) .SetupPostCodeLookup(x => x.GetLatLongFromPostCode(It.IsAny <string>()), Task.FromResult(_testPostCodeCoordinate)) .SetupProviderSearchProvider(x => x.SearchProvidersByLocation(It.IsAny <string>(), It.IsAny <Coordinate>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <ProviderSearchFilter>(), 0), Task.FromResult(searchResults)); var service = builder.Build(); var result = await service.SearchProviders(TestApprenticeshipId, TestPostCode, _pageZeroWithTenItems, null, false, false); result.TotalResults.Should().Be(0); result.ApprenticeshipId.Should().Be(TestApprenticeshipId); builder.LocationLookup.Verify(x => x.GetLatLongFromPostCode(TestPostCode), Times.Once); }
/// <summary> /// Maps the provider data from the search into a class that we can /// more easily use as a datasource. /// </summary> /// <param name="course">A single set of provider data from the search.</param> /// <returns>A ProviderSearchResult of data from the input.</returns> private ProviderSearchResult CreateResult(ProviderStructure course) { ProviderSearchResult result = new ProviderSearchResult(); if (course.Provider != null) { result.ProviderID = HttpUtility.HtmlEncode(course.Provider.ProviderID); result.ProviderName = HttpUtility.HtmlEncode(course.Provider.ProviderName); result.Email = HttpUtility.HtmlEncode(course.Provider.Email); result.Fax = HttpUtility.HtmlEncode(course.Provider.Fax); result.Phone = HttpUtility.HtmlEncode(course.Provider.Phone); result.Website = HttpUtility.HtmlEncode(course.Provider.Website); result.TFPlusLoans = course.Provider.TFPlusLoans; result.DFE1619Funded = course.Provider.DFE1619Funded; if (course.Provider.ProviderAddress != null) { result.AddressLine1 = HttpUtility.HtmlEncode(course.Provider.ProviderAddress.Address_line_1); result.AddressLine2 = HttpUtility.HtmlEncode(course.Provider.ProviderAddress.Address_line_2); result.Town = HttpUtility.HtmlEncode(course.Provider.ProviderAddress.Town); result.County = HttpUtility.HtmlEncode(course.Provider.ProviderAddress.County); result.Postcode = HttpUtility.HtmlEncode(course.Provider.ProviderAddress.PostCode); } } return(result); }
public void TestProviderSearchFromHomePage() { HomePage homePage = new HomePage(driver); ProviderSearchPage searchPage = homePage.ClickFindADoctor(); ProviderSearchResultsPage resultsPage = searchPage.ExecuteSearch("nephrology", "HMSA Akamai Advantage"); ProviderSearchResult firstResult = resultsPage.FirstSearchResult; Assert.AreEqual("Aaron K Nada MD", firstResult.ProviderName); }
public static ProviderSearchResult MapJTokenToProviderSearchResult(JToken token) { var retval = new ProviderSearchResult(); var providers = token["providers"]; foreach (var x in providers) { retval.Result.Add((int)x["providerid"], new Provider(x)); } return(retval); }
public async Task SearchByPostCodeShouldAlwaysReturnTheFrameworkId(string postcode) { const string TestApprenticeshipId = "123-2-1"; var searchResults = new ProviderSearchResult <ProviderSearchResultItem> { Hits = null, Total = 0 }; ProviderSearchService service = new ProviderSearchServiceBuilder() .SetupPostCodeLookup(x => x.GetLatLongFromPostCode(It.IsAny <string>()), Task.FromResult(_testPostCodeCoordinate)) .SetupProviderSearchProvider(x => x.SearchProvidersByLocation(It.IsAny <string>(), It.IsAny <Coordinate>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <ProviderSearchFilter>(), 0), Task.FromResult(searchResults)); var result = await service.SearchProviders(TestApprenticeshipId, postcode, _pageZeroWithTenItems, null, false, false); result.ApprenticeshipId.Should().Be(TestApprenticeshipId); }
public ProviderSearchResult <ProviderSearchResultItem> Map(SFADASApprenticeshipsApiTypesV3ProviderApprenticeshipLocationSearchResult document) { if (document == null) { return(null); } var result = new ProviderSearchResult <ProviderSearchResultItem>(); result.Total = document.TotalResults; result.Hits = document.Results?.Select(s => _providerSearchResultsMapper.Map(s)); result.NationalProvidersAggregation = document.NationalProvidersAggregation.ToDictionary(s => s.Key, s => s.Value as long?); result.TrainingOptionsAggregation = document.TrainingOptionsAggregation.ToDictionary(s => s.Key, s => s.Value as long?); return(result); }
public async Task SearchByPostCodeShouldIncludeFrameworkTitle() { const string TestApprenticeshipTitle = "Test Title"; var searchResults = new ProviderSearchResult <ProviderSearchResultItem> { Hits = null, Total = 0 }; ProviderSearchService service = new ProviderSearchServiceBuilder() .SetupPostCodeLookup(x => x.GetLatLongFromPostCode(It.IsAny <string>()), Task.FromResult(_testPostCodeCoordinate)) .SetupFrameworkRepository(x => x.GetFrameworkById(It.IsAny <string>()), new Framework() { Title = TestApprenticeshipTitle }) .SetupProviderSearchProvider(x => x.SearchProvidersByLocation(It.IsAny <string>(), It.IsAny <Coordinate>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <ProviderSearchFilter>(), 0), Task.FromResult(searchResults)); var result = await service.SearchProviders("123-2-1", "AS3 4AS", _pageZeroWithTenItems, null, false, false); result.Title.Should().Be(TestApprenticeshipTitle); }
public async Task SearchByPostCodeShouldIncludeCountOfResults() { const long testTotalResults = 5; var frameworkId = "123-1-2"; var framework = new Framework { FrameworkId = "123-1-2", FrameworkName = "Test framework name" }; var searchResults = new ProviderSearchResult <ProviderSearchResultItem> { Hits = null, Total = testTotalResults }; ProviderSearchService service = new ProviderSearchServiceBuilder() .SetupFrameworkRepository(x => x.GetFrameworkById(It.IsAny <string>()), framework) .SetupPostCodeLookup(x => x.GetLatLongFromPostCode(It.IsAny <string>()), Task.FromResult(_testPostCodeCoordinate)) .SetupProviderSearchProvider(x => x.SearchProvidersByLocation(It.IsAny <string>(), It.IsAny <Coordinate>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <ProviderSearchFilter>(), 0), Task.FromResult(searchResults)); var result = await service.SearchProviders(frameworkId, "AS2 3SS", _pageZeroWithTenItems, null, false, false); result.TotalResults.Should().Be(testTotalResults); }
public Paged <ProviderSearchResult> SearchByZipcode(int pageIndex, int pageSize, string query) { Paged <ProviderSearchResult> pgResult = null; List <ProviderSearchResult> result = null; int totalCount = 0; string procName = "[dbo].[Practice_Provider_Location_SearchByZipcode]"; _data.ExecuteCmd(procName, inputParamMapper : delegate(SqlParameterCollection col) { col.AddWithValue("@PageIndex", pageIndex); col.AddWithValue("@PageSize", pageSize); col.AddWithValue("@Query", query); }, singleRecordMapper : delegate(IDataReader reader, short set) { int startingIndex = 0; ProviderSearchResult searchedResult = new ProviderSearchResult(); searchedResult.Practice = new Practice(); searchedResult.LocationType = new LocationType(); searchedResult.Location = new Location(); searchedResult.UserProfile = new UserProfile(); searchedResult.Practice.Id = reader.GetSafeInt32(startingIndex++); searchedResult.Practice.Name = reader.GetSafeString(startingIndex++); searchedResult.Practice.Phone = reader.GetSafeString(startingIndex++); searchedResult.Practice.Fax = reader.GetSafeString(startingIndex++); searchedResult.Practice.Email = reader.GetSafeString(startingIndex++); searchedResult.Practice.SiteUrl = reader.GetSafeString(startingIndex++); // searchedResult.Location = _locationMapper.MapALocation(reader, out startingIndex); searchedResult.LocationType.Name = reader.GetSafeString(startingIndex++); searchedResult.Location.LineOne = reader.GetSafeString(startingIndex++); searchedResult.Location.LineTwo = reader.GetSafeString(startingIndex++); searchedResult.Location.City = reader.GetSafeString(startingIndex++); searchedResult.Location.Zip = reader.GetSafeString(startingIndex++); searchedResult.Location.Latitude = reader.GetSafeDouble(startingIndex++); searchedResult.Location.Longitude = reader.GetSafeDouble(startingIndex++); searchedResult.UserProfile.FirstName = reader.GetSafeString(startingIndex++); searchedResult.UserProfile.LastName = reader.GetSafeString(startingIndex++); if (totalCount == 0) { totalCount = reader.GetSafeInt32(startingIndex++); } if (result == null) { result = new List <ProviderSearchResult>(); } result.Add(searchedResult); }); if (result != null) { pgResult = new Paged <ProviderSearchResult>(result, pageIndex, pageSize, totalCount); } return(pgResult); }
internal ProviderSearchService SetupProviderSearchProvider <T>(Func <IProviderSearchProvider, object> instance, ProviderSearchResult <ProviderSearchResultItem> searchResults) { throw new NotImplementedException(); }