Example #1
0
        public static string MeterStatusSummaryDrillDown(List<SpaceStatusModel> modelForView, CustomerConfig customerCfg)
        {
            StringBuilder sb = new StringBuilder();

            // Build list of unique meters -- which will be our grouping
            List<int> uniqueMeterIDs = new List<int>();
            foreach (SpaceStatusModel nextSpaceModel in modelForView)
            {
                if (uniqueMeterIDs.IndexOf(nextSpaceModel.MeterID) == -1)
                    uniqueMeterIDs.Add(nextSpaceModel.MeterID);
            }

            // Loop for each meter
            foreach (int nextMeterID in uniqueMeterIDs)
            {
                // Build list of indexes inside modelForView that are for the current meter
                List<int> itemIndexesForCurrentMeter = new List<int>();
                for (int loIdx = 0; loIdx < modelForView.Count; loIdx++)
                {
                    if (modelForView[loIdx].MeterID == nextMeterID)
                        itemIndexesForCurrentMeter.Add(loIdx);
                }

                SpaceStatusModel currentSpaceStatusModel = modelForView[itemIndexesForCurrentMeter[0]];

                int totalSpaces = 0;
                int totalExpired = 0;
                int totalPaid = 0;
                int totalOther = 0;
                foreach (int itemIdx in itemIndexesForCurrentMeter)
                {
                    SpaceStatusModel nextSpaceModel = modelForView[itemIdx];
                    totalSpaces++;
                    /*
                    if (nextSpaceModel.BayExpiryState == ExpiryState.Expired)
                        totalExpired++;
                    else if (nextSpaceModel.BayExpiryState == ExpiryState.Safe)
                        totalPaid++;
                    else if (nextSpaceModel.BayExpiryState == ExpiryState.Critical)
                        totalPaid++;
                    else
                        totalOther++;
                    */
                    if (nextSpaceModel.BayOccupancyState == OccupancyState.Empty)
                        totalExpired++;
                    else if (nextSpaceModel.BayOccupancyState == OccupancyState.Occupied)
                        totalPaid++;
                    else
                        totalOther++;
                }

                // The TagBuilder class built-into the .NET framework is pretty nice, but it can get pretty tedious 
                // trying to properly handle the InnerHtml if there are a lot of nested tags.  To alleviate this problem,
                // I created a "BaseTagHelper" class that is very similar to the TagBuilder, but it hides the InnerHtml
                // property and replaces it with a "Children" property which is used to hold a a collection of nested
                // BaseTagHelper objects. When you call the ToString() method on BaseTagHelper, the InnerHtml will be
                // rendered automatically based on the children, and handles any level of nesting.  This makes the whole
                // process simpler, because you can create a BaseTagHelper, add as many children (and grand-children) as 
                // needed, then call one ToString() method that will render the main tag and all of its nested children!

                // Create tag for outer boundary of this entire block
                BaseTagHelper OuterPanel = new BaseTagHelper("div");
                OuterPanel.AddCssClass("dtNoLinesOrGaps");

                // Create a tag that will be used as a header row -- child of the outer boundary
                BaseTagHelper tbTitleRow = new BaseTagHelper("span");
                OuterPanel.Children.Add(tbTitleRow);
                tbTitleRow.AddCssClass("dtr"); // display table-row
                tbTitleRow.MergeAttribute("style", "background-color:#CCFFFF;");

                // Create tags that will be used as column headers -- child of the title row
                BaseTagHelper tbColHeader = new BaseTagHelper("span");
                tbTitleRow.Children.Add(tbColHeader);
                tbColHeader.AddCssClass("dtc hcenter"); //display table-cell and horizontally centered
                tbColHeader.SetInnerText("Group");

                tbColHeader = new BaseTagHelper("span");
                tbTitleRow.Children.Add(tbColHeader);
                tbColHeader.AddCssClass("dtc hcenter");
                tbColHeader.SetInnerText("Expired");

                tbColHeader = new BaseTagHelper("span");
                tbTitleRow.Children.Add(tbColHeader);
                tbColHeader.AddCssClass("dtc hcenter");
                tbColHeader.SetInnerText("Vacant");

                // Create a tag to be used as a group row -- child of the outer panel
                BaseTagHelper tbGroupRow = new BaseTagHelper("span");
                OuterPanel.Children.Add(tbGroupRow);
                tbGroupRow.AddCssClass("dtr");
                tbGroupRow.MergeAttribute("style", "background-color:#33FFFF;");

                // Create a tag to be used as a column in the group row -- child of the group row
                BaseTagHelper tbGroupCol = new BaseTagHelper("span");
                tbGroupRow.Children.Add(tbGroupCol);
                tbGroupCol.AddCssClass("dtc hcenter vcenter"); //display table-cell and both horizontally and vertically centered
                tbGroupCol.SetInnerText("Meter: " + currentSpaceStatusModel.MeterID.ToString());

                // Column #2 of group row
                tbGroupCol = new BaseTagHelper("span");
                tbGroupRow.Children.Add(tbGroupCol);
                tbGroupCol.AddCssClass("dtc hcenter vcenter"); //display table-cell and both horizontally and vertically centered
                tbGroupCol.SetInnerText(" "); // &nbsp;

                BaseTagHelper tbRoundPanel = new BaseTagHelper("span");
                tbGroupCol.Children.Add(tbRoundPanel);
                tbRoundPanel.AddCssClass("rounded-corners NewMeterBlock");
                tbRoundPanel.MergeAttribute("style", "width:120px; text-align:center; background-color:#99FFCC;  border-collapse:separate; boder-spacing:1px;");

                BaseTagHelper helloCell = new BaseTagHelper("span");
                tbRoundPanel.Children.Add(helloCell);
                helloCell.SetInnerText(totalExpired.ToString() + "/" + totalSpaces.ToString()); 

                BaseTagHelper tbTbl1 = new BaseTagHelper("div");
                tbRoundPanel.Children.Add(tbTbl1);
                tbTbl1.MergeAttribute("style", "display:table; border:1px solid black; width:90%; margin:4px; border-collapse:separate; boder-spacing:1px;");

                BaseTagHelper tbTbl1Row1 = new BaseTagHelper("span");
                tbTbl1.Children.Add(tbTbl1Row1);
                tbTbl1Row1.AddCssClass("dtr");

                BaseTagHelper tempCell = new BaseTagHelper("span");
                tbTbl1Row1.Children.Add(tempCell);
                tempCell.AddCssClass("dtc");
                tempCell.SetInnerText("Col1");

                tempCell = new BaseTagHelper("span");
                tbTbl1Row1.Children.Add(tempCell);
                tempCell.AddCssClass("dtc");
                tempCell.MergeAttribute("style", "background-color:gray; width:100%;");

                BaseTagHelper tbTbl2 = new BaseTagHelper("div");
                tempCell.Children.Add(tbTbl2);
                tbTbl2.MergeAttribute("style", "display:table; width:100%;");

                BaseTagHelper tbTbl2Row1 = new BaseTagHelper("span");
                tbTbl2.Children.Add(tbTbl2Row1);
                tbTbl2Row1.AddCssClass("dtr");

                int percent = 0;
                if (totalSpaces > 0) 
                    percent = Convert.ToInt32((Convert.ToDouble(totalExpired) / Convert.ToDouble(totalSpaces)) * 100.0f);
                if (percent > 0)
                {
                    tempCell = new BaseTagHelper("span");
                    tbTbl2Row1.Children.Add(tempCell);
                    tempCell.AddCssClass("dtc");
                    tempCell.MergeAttribute("style", "width:" + percent.ToString() + "%; padding:0px; background-color:Red; overflow:none;");
                    tempCell.SetInnerHtml("&nbsp;"); // DEBUG: How do we use a not-breaking space?  &nbsp;
                }

                percent = 0; 
                if (totalSpaces > 0)
                    percent = Convert.ToInt32((Convert.ToDouble(totalOther) / Convert.ToDouble(totalSpaces)) * 100.0f);
                if (percent > 0)
                {
                    tempCell = new BaseTagHelper("span");
                    tbTbl2Row1.Children.Add(tempCell);
                    tempCell.AddCssClass("dtc");
                    tempCell.MergeAttribute("style", "width:" + percent.ToString() + "%; padding:0px; background-color:Yellow; overflow:none;");
                    tempCell.SetInnerHtml("&nbsp;");
                }

                percent = 0;
                if (totalSpaces > 0)
                    percent = Convert.ToInt32((Convert.ToDouble(totalPaid) / Convert.ToDouble(totalSpaces)) * 100.0f);
                if (percent > 0)
                {
                    tempCell = new BaseTagHelper("span");
                    tbTbl2Row1.Children.Add(tempCell);
                    tempCell.AddCssClass("dtc");
                    tempCell.MergeAttribute("style", "width:" + percent.ToString() + "%; padding:0px; background-color:Green; overflow:none;");
                    tempCell.SetInnerHtml("&nbsp;");
                    //DEBUG:  onclick="alert('clicked the green');"
                }



                // Column #3 of group row
                tbGroupCol = new BaseTagHelper("span");
                tbGroupRow.Children.Add(tbGroupCol);
                tbGroupCol.AddCssClass("dtc hcenter vcenter"); //display table-cell and both horizontally and vertically centered
                tbGroupCol.SetInnerText("col3"); // &nbsp;

                tbRoundPanel = new BaseTagHelper("span");
                tbGroupCol.Children.Add(tbRoundPanel);
                tbRoundPanel.AddCssClass("rounded-corners NewMeterBlock");
                tbRoundPanel.MergeAttribute("style", "width:120px; text-align:center; background-color:#99FFCC; border-collapse:separate; boder-spacing:1px;");
                tbRoundPanel.SetInnerText("Hello2"); // &nbsp;



                // Now render the outer panel tag, and we will obtain the Html for all of its children too
                sb.AppendLine(OuterPanel.ToString(TagRenderMode.Normal));
            }

            return sb.ToString();
        }
        public static string RenderSystemInfo(ViewDataDictionary ViewData)
        {
            string        result    = string.Empty;
            BaseTagHelper table     = null;
            BaseTagHelper tblRow    = null;
            BaseTagHelper tblHeader = null;
            BaseTagHelper tblData   = null;

            // Create table
            table = new BaseTagHelper("table");

            // Create table header
            tblRow = new BaseTagHelper("tr");
            table.Children.Add(tblRow);
            tblRow.AddCssClass("yellow");
            tblHeader = new BaseTagHelper("th");
            tblRow.Children.Add(tblHeader);
            tblHeader.SetInnerText("Property");
            tblHeader = new BaseTagHelper("th");
            tblRow.Children.Add(tblHeader);
            tblHeader.SetInnerText("Value");

            // Try to log some application and framework component version information. Ignore any exceptions here
            try
            {
                Assembly thisWebAppAssembly = MethodBase.GetCurrentMethod().DeclaringType.Assembly;

                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("Application");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(thisWebAppAssembly.GetName().Name + " v" + thisWebAppAssembly.GetName().Version.ToString());

                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("MS MVC");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("ASP.NET MVC " + typeof(Controller).Assembly.ImageRuntimeVersion);

                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("MS .NET");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(".NET Framework " + typeof(Object).Assembly.ImageRuntimeVersion);
            }
            catch { }

            // Try to get info about the IIS version
            try
            {
                string iisVersion = string.Empty;
                iisVersion = (ViewData["SERVER_SOFTWARE"] as string); //Request.ServerVariables["SERVER_SOFTWARE"];
                if (string.IsNullOrEmpty(iisVersion))
                {
                    string loFilename = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "inetsrv\\inetinfo.exe");
                    if (!File.Exists(loFilename))
                    {
                        loFilename = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "inetsrv\\InetMgr.exe");
                    }

                    if (File.Exists(loFilename))
                    {
                        FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(loFilename);

                        // Add data row and its cells
                        tblRow = new BaseTagHelper("tr");
                        table.Children.Add(tblRow);
                        tblData = new BaseTagHelper("td");
                        tblRow.Children.Add(tblData);
                        tblData.AddCssClass("tdLeft");
                        tblData.SetInnerText("MS IIS");
                        tblData = new BaseTagHelper("td");
                        tblRow.Children.Add(tblData);
                        tblData.AddCssClass("tdLeft");
                        tblData.SetInnerText("Internet Information Services v" + myFileVersionInfo.FileVersion);
                    }
                }
                else
                {
                    // Add data row and its cells
                    tblRow = new BaseTagHelper("tr");
                    table.Children.Add(tblRow);
                    tblData = new BaseTagHelper("td");
                    tblRow.Children.Add(tblData);
                    tblData.AddCssClass("tdLeft");
                    tblData.SetInnerText("MS IIS");
                    tblData = new BaseTagHelper("td");
                    tblRow.Children.Add(tblData);
                    tblData.AddCssClass("tdLeft");
                    tblData.SetInnerText(iisVersion);
                }
            }
            catch { }


            // Try to log info about which user the website's AppPool/WorkerProcess runs as. Ignore any exceptions here
            try
            {
                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("Process User Context");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
            }
            catch { }

            // Try to log info about which app pool we are running under. Ignore any exceptions here
            try
            {
                string webAppPool = Environment.GetEnvironmentVariable("APP_POOL_ID", EnvironmentVariableTarget.Process);
                if (!string.IsNullOrEmpty(webAppPool))
                {
                    // Add data row and its cells
                    tblRow = new BaseTagHelper("tr");
                    table.Children.Add(tblRow);
                    tblData = new BaseTagHelper("td");
                    tblRow.Children.Add(tblData);
                    tblData.AddCssClass("tdLeft");
                    tblData.SetInnerText("Web App Pool");
                    tblData = new BaseTagHelper("td");
                    tblRow.Children.Add(tblData);
                    tblData.AddCssClass("tdLeft");
                    tblData.SetInnerText(webAppPool);
                }
            }
            catch { }


            // Try to log some Operating System info. Ignore any exceptions here
            try
            {
                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("Machine Name");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(Environment.MachineName);

                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("Machine Type");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                if (Environment.Is64BitOperatingSystem)
                {
                    tblData.SetInnerText("64-Bit, " + Environment.ProcessorCount.ToString() + " processors");
                }
                else
                {
                    tblData.SetInnerText("32-Bit, " + Environment.ProcessorCount.ToString() + " processors");
                }

                // Try to get processer info
                try
                {
                    string Query = "Select Name from Win32_Processor";
                    System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(Query);
                    string processorInfo = string.Empty;
                    foreach (System.Management.ManagementObject Win32 in searcher.Get())
                    {
                        processorInfo = Win32["Name"] as string;
                        if (!string.IsNullOrEmpty(processorInfo))
                        {
                            // Add data row and its cells
                            tblRow = new BaseTagHelper("tr");
                            table.Children.Add(tblRow);
                            tblData = new BaseTagHelper("td");
                            tblRow.Children.Add(tblData);
                            tblData.AddCssClass("tdLeft");
                            tblData.SetInnerText("Processor");
                            tblData = new BaseTagHelper("td");
                            tblRow.Children.Add(tblData);
                            tblData.AddCssClass("tdLeft");
                            tblData.SetInnerText(processorInfo);
                        }
                    }
                    searcher.Dispose();
                }
                catch
                {
                }

                // Try to get memory information
                try
                {
                    string Query = "Select TotalVisibleMemorySize from Win32_OperatingSystem";
                    System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(Query);
                    string sysMem = string.Empty;
                    foreach (System.Management.ManagementObject Win32 in searcher.Get())
                    {
                        sysMem = (Convert.ToInt32(Win32["TotalVisibleMemorySize"]) / 1024).ToString() + " MB";
                        // Add data row and its cells
                        tblRow = new BaseTagHelper("tr");
                        table.Children.Add(tblRow);
                        tblData = new BaseTagHelper("td");
                        tblRow.Children.Add(tblData);
                        tblData.AddCssClass("tdLeft");
                        tblData.SetInnerText("System Memory");
                        tblData = new BaseTagHelper("td");
                        tblRow.Children.Add(tblData);
                        tblData.AddCssClass("tdLeft");
                        tblData.SetInnerText(sysMem);
                    }
                    searcher.Dispose();
                }
                catch
                {
                }

                // Try to get the operating system name from management searcher. If that fails,
                // fallback to Environment.OSVersion, which unfortunately isn't as accurate
                try
                {
                    string Query = "Select Name from Win32_OperatingSystem";
                    System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(Query);
                    string OSVersion = string.Empty;
                    foreach (System.Management.ManagementObject Win32 in searcher.Get())
                    {
                        OSVersion = Win32["Name"] as string;
                        if (!string.IsNullOrEmpty(OSVersion))
                        {
                            // Add data row and its cells
                            tblRow = new BaseTagHelper("tr");
                            table.Children.Add(tblRow);
                            tblData = new BaseTagHelper("td");
                            tblRow.Children.Add(tblData);
                            tblData.AddCssClass("tdLeft");
                            tblData.SetInnerText("Windows OS");
                            tblData = new BaseTagHelper("td");
                            tblRow.Children.Add(tblData);
                            tblData.AddCssClass("tdLeft");
                            tblData.SetInnerText(OSVersion);
                            //break;
                        }

                        if (string.IsNullOrEmpty(OSVersion))
                        {
                            // Add data row and its cells
                            tblRow = new BaseTagHelper("tr");
                            table.Children.Add(tblRow);
                            tblData = new BaseTagHelper("td");
                            tblRow.Children.Add(tblData);
                            tblData.AddCssClass("tdLeft");
                            tblData.SetInnerText("Windows OS");
                            tblData = new BaseTagHelper("td");
                            tblRow.Children.Add(tblData);
                            tblData.AddCssClass("tdLeft");
                            tblData.SetInnerText(Environment.OSVersion.ToString());
                        }
                    }
                }
                catch
                {
                }
            }
            catch { }

            // Let's try to get some info about server times
            try
            {
                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("IIS Server Timezone");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(CustomerLogic.CustomerManager.Instance.ServerTimeZone.StandardName + "  [ " + CustomerLogic.CustomerManager.Instance.ServerTimeZone.DisplayName + " ]");

                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("IIS Server Clock");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(DateTime.Now.ToString("yyyy-M-d H:m:s"));

                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("DB Server Clock");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(CustomerLogic.CustomerManager.GetDBServerTime().ToString("yyyy-M-d H:m:s"));

                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("Your Browser Clock");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerHtml(
                    "<script language=\"javascript\">" + Environment.NewLine +
                    "ourDate = new Date();" + Environment.NewLine +
                    "document.write(ourDate.getFullYear() + \"-\" + (ourDate.getMonth() + 1) + \"-\" + ourDate.getDate() + \" \" +" +
                    "ourDate.getHours() + \":\" + ourDate.getMinutes() + \":\" + ourDate.getSeconds());" + Environment.NewLine +
                    /*"document.write(ourDate.toLocaleString());" + Environment.NewLine +*/
                    "</script>"
                    );
            }
            catch { }

            try
            {
                SqlConnectionStringBuilder dbConnectBuilder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["RBACDBConnection"].ConnectionString);

                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("RBAC DB");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(dbConnectBuilder.InitialCatalog + " on " + dbConnectBuilder.DataSource + " via user " + dbConnectBuilder.UserID);
            }
            catch { }

            try
            {
                SqlConnectionStringBuilder dbConnectBuilder = new SqlConnectionStringBuilder(CustomerLogic.CustomerManager.Instance._DBConnectStr_ReinoComm);

                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("ReinoComm DB");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText(dbConnectBuilder.InitialCatalog + " on " + dbConnectBuilder.DataSource + " via user " + dbConnectBuilder.UserID);
            }
            catch { }

            try
            {
                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("PAM Connection");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                if (!string.IsNullOrEmpty(CustomerLogic.CustomerManager.Instance.PAMServerTCPAddress))
                {
                    tblData.SetInnerText(CustomerLogic.CustomerManager.Instance.PAMServerTCPAddress + ":" + CustomerLogic.CustomerManager.Instance.PAMServerTCPPort);
                }
                else
                {
                    tblData.SetInnerText(CustomerLogic.CustomerManager.Instance.PaymentXMLSource);
                }
            }
            catch { }

            try
            {
                // Add data row and its cells
                tblRow = new BaseTagHelper("tr");
                table.Children.Add(tblRow);
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");
                tblData.SetInnerText("Loaded Customer Count");
                tblData = new BaseTagHelper("td");
                tblRow.Children.Add(tblData);
                tblData.AddCssClass("tdLeft");

                List <CustomerConfig> allDTOs = CustomerLogic.CustomerManager.GetAllCustomerDTOs();
                tblData.SetInnerText(allDTOs.Count.ToString());
            }
            catch { }

            // Get final string from the tag builder for our table
            result = table.ToString();
            return(result);
        }