/// <summary> /// Creates the ui friendly class from the results. /// </summary> /// <param name="output">The results of the search.</param> /// <returns>A class containing the results</returns> private ProviderSearchResults CreateProviderSearchResults(ProviderSearchOutput output) { ProviderSearchResults results = new ProviderSearchResults(); if (output != null && output.ProviderSearchResponse != null && output.ProviderSearchResponse.ProviderDetails != null) { foreach (ProviderStructure course in output.ProviderSearchResponse.ProviderDetails) { results.Add(CreateResult(course)); } } return(results); }
/// <summary> /// On clicking ProviderSearch button, calls CourseSearchService ProviderSearch() method wtih test data. /// </summary> private void btnProviderSearch_Click(object sender, EventArgs e) { txtResult.Text = "Processing ..."; ServiceInterface client = new ServiceInterfaceClient("CourseSearch"); ProviderSearchInput request = new ProviderSearchInput(new ProviderSearchRequestStructure()); request.ProviderSearchRequest.ProviderKeyword = "Cardiff"; try { ProviderSearchOutput response = client.ProviderSearch(request); StringBuilder sb = new StringBuilder(); sb.Append("Request details:"); sb.Append("\nProvider Keyword = " + response.ProviderSearchResponse.RequestDetails.ProviderSearch.ProviderKeyword); sb.Append("\n\n"); if (response.ProviderSearchResponse != null && response.ProviderSearchResponse.ProviderDetails != null) { sb.Append("Provider details:"); foreach (ProviderStructure providerDetail in response.ProviderSearchResponse.ProviderDetails) { sb.Append("\n" + providerDetail.Provider.ProviderID); sb.Append("\n" + providerDetail.Provider.ProviderName); sb.Append("\n"); } } txtResult.Text = sb.ToString(); } catch (Exception ex) { txtResult.Text = ex.Message; } }
/// <summary> /// Executes a search for Providers matching the search keyword. /// </summary> /// <param name="request">ProviderSearchInput request object.</param> /// <returns>A ProviderSearchOuput object.</returns> public ProviderSearchOutput GetProviders(ProviderSearchInput request) { ProviderSearchOutput providerSearchOutput = new ProviderSearchOutput(new ProviderSearchResponseStructure()); providerSearchOutput.ProviderSearchResponse.RequestDetails = new ProviderSearchResponseStructureRequestDetails(); providerSearchOutput.ProviderSearchResponse.RequestDetails.ProviderSearch = request.ProviderSearchRequest; List <Provider> providers = _providerQuery.GetProviders(request.ProviderSearchRequest.ProviderKeyword, request.ProviderSearchRequest.APIKey); List <ProviderStructure> providerStructures = new List <ProviderStructure>(); foreach (Provider provider in providers) { ProviderStructure providerStructure = new ProviderStructure(); providerStructure.Provider = BuildProviderDetail(provider); providerStructures.Add(providerStructure); } providerSearchOutput.ProviderSearchResponse.ProviderDetails = providerStructures.ToArray(); return(providerSearchOutput); }
/// <summary> /// Gets the data and displays on screen if we have any. /// </summary> /// <param name="criteria"></param> private void PopulateData(SearchCriteriaStructure criteria) { try { // fire the web service to get some results ProviderSearchOutput output = GetResults(criteria); ProviderSearchResults results = CreateProviderSearchResults(output); if (results.Count() > 0) { ResultsOverviewLabel.Text = "No of records: " + results.Count; RepeaterContainer.DataSource = results; // pagedDS; RepeaterContainer.DataBind(); } else { ResultsOverviewLabel.Text = "There are no results to display."; } } catch (Exception ex) { ResultsOverviewLabel.Text = ex.Message + "/n/n" + ex.StackTrace; } }
/// <summary> /// Gets the results from the web service. /// </summary> /// <param name="criteria">The course search criteria.</param> /// <returns>A list of found courses.</returns> private ProviderSearchOutput GetResults(SearchCriteriaStructure criteria) { ProviderSearchOutput output = new ProviderSearchOutput(); ServiceInterface client = new ServiceInterfaceClient("CourseSearchService"); ProviderSearchRequestStructure listRequestStructure = new ProviderSearchRequestStructure { APIKey = criteria.APIKey, ProviderKeyword = criteria.ProviderKeyword }; ProviderSearchInput request = new ProviderSearchInput(listRequestStructure); try { output = client.ProviderSearch(request); } catch (Exception ex) { ResultsOverviewLabel.Text = ex.Message + "\n" + ex.StackTrace; } return(output); }