/// <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>
        /// 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);
        }