private static SubjectBrowseInput CreateSearchCriteria(NameValueCollection requestData) { SubjectBrowseInput criteria = new SubjectBrowseInput { APIKey = Utilities.GetQueryStringValue(requestData, "APIKey") ?? String.Empty }; return(criteria); }
private void PopulateData(SubjectBrowseInput request) { ServiceInterface client = new ServiceInterfaceClient("CourseSearchService"); try { SubjectBrowseOutput response = client.GetCategories(request); foreach (Level1 level1 in response.Level1) { // start Level 1 string level1Text = CreateLevelText(level1.LDCS.LDCSCode, level1.LDCS.LDCSDesc, level1.LDCS.Searchable.ToString(), level1.CourseCounts); TreeNode level1TreeNode = new TreeNode(level1Text); level1TreeNode.SelectAction = TreeNodeSelectAction.None; if (level1.Level2 != null) { foreach (Level2 level2 in level1.Level2) { // start Level 2 string level2Text = CreateLevelText(level2.LDCS.LDCSCode, level2.LDCS.LDCSDesc, level2.LDCS.Searchable.ToString(), level2.CourseCounts); TreeNode level2TreeNode = new TreeNode(level2Text); level2TreeNode.SelectAction = TreeNodeSelectAction.None; if (level2.Level3 != null) { foreach (CategoryInfo level3 in level2.Level3) { string level3Text = CreateLevelText(level3.LDCS.LDCSCode, level3.LDCS.LDCSDesc, level3.LDCS.Searchable.ToString(), level3.CourseCounts); TreeNode level3TreeNode = new TreeNode(level3Text); level3TreeNode.NavigateUrl = "~\\CourseSearch.aspx?ldcscategorycodes=" + level3.LDCS.LDCSCode + "&APIKey=" + request.APIKey + "&action=search&recordsperpage=10"; // add the level 3 node to the level 2 node level2TreeNode.ChildNodes.Add(level3TreeNode); } } // add level 2 node to the level 1 node level1TreeNode.ChildNodes.Add(level2TreeNode); } } // add the level 1 node TreeView1.Nodes.Add(level1TreeNode); } TreeView1.DataBind(); } catch (Exception ex) { ResultsOverviewLabel.Text = ex.Message + "/n/n" + ex.StackTrace; } }
protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack) { // get the search criteria so we know what we're trying to find SubjectBrowseInput criteria = CreateSearchCriteria(Page.Request.QueryString); // call the search and populate our results table PopulateData(criteria); // once we've displayed our results we need to set the display back to the // criteria values SearchControl.PopulatePage(criteria); } }
/// <summary> /// Retrieves all Categories. /// </summary> /// <param name="request">SubjectBrowseInput request.</param> /// <exception cref="CourseSearchServiceException">The exception details of the error that has occurred.</exception> /// <returns>SubjectBrowseOutput object populated with Category details.</returns> public SubjectBrowseOutput GetCategories(SubjectBrowseInput request) { SubjectBrowseOutput sbo; try { sbo = _courseService.GetCategories(request); } catch (Exception ex) { CourseSearchServiceException exc = new CourseSearchServiceException("An error has occured in the CourseSearchService", ex); throw exc; } return(sbo); }
/// <summary> /// On clicking GetCategories button, calls CourseSearchService GetCategories() method wtih test data. /// </summary> private void btnGetCategories_Click(object sender, EventArgs e) { txtResult.Text = "Processing ..."; ServiceInterface client = new ServiceInterfaceClient("CourseSearch"); SubjectBrowseInput request = new SubjectBrowseInput(); StringBuilder sb = new StringBuilder(); try { SubjectBrowseOutput response = client.GetCategories(request); foreach (Level1 level1 in response.Level1) { sb.Append("Level 1:" + level1.LDCS.LDCSCode + "; " + level1.LDCS.LDCSDesc + "; " + level1.LDCS.Searchable.ToString() + "; " + level1.CourseCounts + "\n"); if (level1.Level2 != null) { foreach (Level2 level2 in level1.Level2) { sb.Append("Level 2:" + level2.LDCS.LDCSCode + "; " + level2.LDCS.LDCSDesc + "; " + level2.LDCS.Searchable.ToString() + "; " + level2.CourseCounts + "\n"); if (level2.Level3 != null) { foreach (CategoryInfo level3 in level2.Level3) { sb.Append("Level 3:" + level3.LDCS.LDCSCode + "; " + level3.LDCS.LDCSDesc + "; " + level3.LDCS.Searchable.ToString() + "; " + level3.CourseCounts + "\n"); } } } } sb.Append("\n"); } txtResult.Text = sb.ToString(); } catch (Exception ex) { txtResult.Text = sb.ToString() + "\n\n" + ex.Message; } }
/// <summary> /// Populates the page controls with the values from the search criteria. /// </summary> /// <param name="criteria">The populated search criteria.</param> public void PopulatePage(SubjectBrowseInput criteria) { if (phAPIKey.Visible) { const string scriptName = "PopulateCriteria"; Type thisType = this.GetType(); ClientScriptManager mgr = Page.ClientScript; if (!mgr.IsStartupScriptRegistered(thisType, scriptName)) { StringBuilder scriptText = new StringBuilder(); scriptText.Append("<script type=text/javascript>" + Environment.NewLine); // API Key scriptText.Append(Utilities.GetJavascriptSetValueSnippet("APIKey", criteria.APIKey)); // end scriptText.Append("</script>"); mgr.RegisterStartupScript(thisType, scriptName, scriptText.ToString()); } } }
/// <summary> /// Gets a list of categories matching the search crietria. /// </summary> /// <param name="subjectBrowseInput">Search criteria.</param> /// <returns>Populated SubjectBrowseOutput containing matching categories.</returns> public SubjectBrowseOutput GetCategories(SubjectBrowseInput subjectBrowseInput) { List <Category> categories = _courseQuery.GetCategories(subjectBrowseInput.APIKey); return(BuildSubjectBrowseOutput(categories)); }