/// <summary> /// This method renders an individual service. /// </summary> /// <param name="serviceInfo">The service to render.</param> /// <param name="writer">Writer to use to write our HTML.</param> private void RenderServiceInfo(ServiceResultInfo serviceInfo, HtmlTextWriter writer) { // // Render a plus/minus tag. We will use the service key of this service to name // our hidden details panel. // writer.AddAttribute(HtmlTextWriterAttribute.Class, "expand_cell"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.RenderBeginTag(HtmlTextWriterTag.Td); RenderExpandTag(writer, serviceInfo.serviceKey); writer.RenderEndTag(); // // Render the name of the service. Use the first name that is registered with the service. // writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.Write(Server.HtmlEncode(serviceInfo.serviceName)); writer.RenderEndTag(); writer.RenderEndTag(); // // Render a details panel for the service that is initially hidden. // writer.AddAttribute(HtmlTextWriterAttribute.Id, serviceInfo.serviceKey); writer.AddAttribute(HtmlTextWriterAttribute.Style, "display:none"); writer.RenderBeginTag(HtmlTextWriterTag.Tr); // // Skip 2 cells // writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Id, serviceInfo.serviceKey + "_detailsPanel"); writer.RenderBeginTag(HtmlTextWriterTag.Td); RenderServiceDetail(serviceInfo.serviceKey, writer); writer.RenderEndTag(); }
/// <summary> /// Use this function to populate a ResultsList instance with raw values from the database. /// The results from the database must be returned in the following order: /// /// businessName /// businessKey /// serviceName /// serviceKey /// /// ParseResults will use indexes to read these values from the SqlDataReaderAccessor so this /// order must be maintained from the database. /// </summary> /// <param name="values">Reader returned from the database.</param> /// <returns></returns> public int ParseResults(SqlDataReaderAccessor values) { results = new ArrayList(); string currentBusinessName = null; string lastBusinessName = null; BusinessResultInfo businessInfo = new BusinessResultInfo(); while (values.Read()) { currentBusinessName = values.GetString(0); ServiceResultInfo serviceInfo = new ServiceResultInfo(); serviceInfo.serviceName = values.GetString(2); serviceInfo.serviceKey = values.GetString(3); if (null != lastBusinessName && false == lastBusinessName.Equals(currentBusinessName)) { results.Add(businessInfo); businessInfo = new BusinessResultInfo(); } businessInfo.businessName = currentBusinessName; businessInfo.serviceResultInfos.Add(serviceInfo); lastBusinessName = currentBusinessName; } // // Add our last one. // if (businessInfo.serviceResultInfos.Count > 0) { results.Add(businessInfo); } return(results.Count); }