示例#1
0
        /// <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();
        }
示例#2
0
        /// <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);
        }