Exemplo n.º 1
0
        private void EnumerateAndDisplaySessionState()
        {
            bool displayingObjectSize;

            Table sessionTable = TableHelper.CreateTable();

            //Table Header
            var mainHeadingRow = new TableRow();

            sessionTable.Rows.Add(mainHeadingRow);

            TableCell mainHeading;

            if (_context.Session.Mode == SessionStateMode.SQLServer ||
                _context.Session.Mode == SessionStateMode.StateServer)
            {
                displayingObjectSize = true;
                mainHeading          = TableHelper.AddHeaderCell(mainHeadingRow, "<h3><b>Session State Details including approximate item size</b></h3>");
                mainHeading.CssClass = "alt";
            }
            else
            {
                displayingObjectSize = false;
                mainHeading          = TableHelper.AddHeaderCell(mainHeadingRow, "<h3><b>Session State Details</b></h3>");
            }

            mainHeading.ColumnSpan = 4;
            mainHeading.CssClass   = "alt";

            TableRow secondaryHeadingRow = new TableRow();

            secondaryHeadingRow.CssClass = "subhead";
            sessionTable.Rows.Add(secondaryHeadingRow);

            //TableCell headingRowCol1 = TableHelper.AddHeaderCell(secondaryHeadingRow, "Session Key"); -- chrisme: not used!

            TableCell headingRowCol2 = TableHelper.AddHeaderCell(secondaryHeadingRow, "Object Type");

            if (!displayingObjectSize)
            {
                //Make second column span 2
                headingRowCol2.ColumnSpan = 2;
            }

            //TableCell headingRowCol4 = TableHelper.AddHeaderCell(secondaryHeadingRow, "View Data"); -- chrisme: not used!

            bool     alternatingRowToggle = false;
            TableRow dataRow;

            //Loop through all the session item keys
            foreach (string sessionKey in _context.Session.Keys)
            {
                dataRow = new TableRow();

                //Key column
                TableHelper.AddCell(dataRow, sessionKey);

                if (_context.Session[sessionKey] != null)
                {
                    //Get out of session
                    Object sessionItem = _context.Session[sessionKey];

                    //System.Type type = sessionItem.GetType();  -- chrisme: not used!

                    //Type column
                    TableHelper.AddCell(dataRow, sessionItem.GetType().FullName);

                    if (displayingObjectSize)
                    {
                        //Size column

                        Stream alternativeSerializationStreamSessionKey = BinaryWrite(sessionKey);

                        if (TypeIsInAlternativeSerializationList(sessionItem.GetType()))
                        {
                            Stream alternativeSerializationStream = BinaryWrite(sessionItem);

                            //Alt Serialization Size column
                            TableHelper.AddCell(dataRow,
                                                Convert.ToDouble(alternativeSerializationStream.Length + alternativeSerializationStreamSessionKey.Length)
                                                / Convert.ToDouble(1000) + " KB");
                        }
                        else
                        {
                            MemoryStream m;
                            m = Common.BinarySerialize(sessionItem);

                            TableHelper.AddCell(dataRow,
                                                Convert.ToDouble(m.Length + alternativeSerializationStreamSessionKey.Length)
                                                / Convert.ToDouble(1000) + " KB");
                        }
                    }
                    else
                    {
                        // Make second column span 2 to make up for unused third col
                        dataRow.Cells[1].ColumnSpan = 2;
                    }

                    //Data link column
                    if (_HttpHandlerSettings.SessionView.ShowViewDataLink)
                    {
                        StringWriter swTest = Common.XmlSerialize(sessionItem);

                        if (swTest == null)
                        {
                            //Could not serialize the data in a human readable form using Xml
                            TableHelper.AddCell(dataRow, "Data could not be serialized to Xml");
                        }
                        else
                        {
                            TableHelper.AddCell(dataRow, "Click to view data", "SessionView.axd?Item=" + sessionKey);
                        }
                    }
                    else
                    {
                        TableHelper.AddCell(dataRow, "N/A");
                    }
                }
                else
                {
                    TableHelper.AddCell(dataRow, "N/A");

                    if (displayingObjectSize)
                    {
                        TableHelper.AddCell(dataRow, "N/A");
                    }
                    else
                    {
                        dataRow.Cells[1].ColumnSpan = 3;
                    }
                }

                if (alternatingRowToggle)
                {
                    dataRow.CssClass = "alt";
                }

                alternatingRowToggle = alternatingRowToggle == Convert.ToBoolean(0);
                sessionTable.Rows.Add(dataRow);
            }

            sessionTable.RenderControl(_writer);
        }
Exemplo n.º 2
0
        private void EnumerateAndDisplayCache()
        {
            Table cacheTable = TableHelper.CreateTable();

            //Table Header
            var mainHeadingRow = new TableRow();

            cacheTable.Rows.Add(mainHeadingRow);

            TableCell mainHeading = TableHelper.AddHeaderCell(mainHeadingRow, "<h3><b>Cache Details</b></h3>");

            mainHeading.ColumnSpan = 3;
            mainHeading.CssClass   = "alt";

            var secondaryHeadingRow = new TableRow();

            secondaryHeadingRow.CssClass = "subhead";
            cacheTable.Rows.Add(secondaryHeadingRow);

            //TableCell headingRowCol1 = TableHelper.AddHeaderCell(secondaryHeadingRow, "Cache Key"); -- chrisme: <- not used!

            //TableCell headingRowCol2 = TableHelper.AddHeaderCell(secondaryHeadingRow, "Cached Object Type"); -- chrisme: <- not used!

            //TableCell headingRowCol3 = TableHelper.AddHeaderCell(secondaryHeadingRow, "View Data"); -- chrisme: <- not used!

            bool alternatingRowToggle = false;
            //var enumeratedItems = new ArrayList(); -- chrisme: <- not used!
            TableRow dataRow;

            foreach (DictionaryEntry cacheDictionaryItem in _context.Cache)
            {
                dataRow = new TableRow();

                //Key column
                TableHelper.AddCell(dataRow, cacheDictionaryItem.Key.ToString());

                if (_context.Cache[cacheDictionaryItem.Key.ToString()] != null)
                {
                    //Get out of cache
                    Object cacheObjectItem = _context.Cache[cacheDictionaryItem.Key.ToString()];

                    //System.Type type = cacheObjectItem.GetType(); -- chrisme: <- not used!

                    //Type column
                    TableHelper.AddCell(dataRow, cacheObjectItem.GetType().FullName);
                }
                else
                {
                    //Type column
                    TableHelper.AddCell(dataRow, "NULL");
                }

                //Data link column
                if (_httpHandlerSettings.CacheView.ShowViewDataLink)
                {
                    StringWriter swTest = Common.XmlSerialize(cacheDictionaryItem.Value);

                    if (swTest == null)
                    {
                        //Could not serialize the data in a human readable form using Xml
                        TableHelper.AddCell(dataRow, "Data could not be serialized to Xml");
                    }
                    else
                    {
                        TableHelper.AddCell(dataRow, "Click to view data", "CacheView.axd?Item=" + cacheDictionaryItem.Key);
                    }
                }
                else
                {
                    TableHelper.AddCell(dataRow, "N/A");
                }

                if (alternatingRowToggle)
                {
                    dataRow.CssClass = "alt";
                }

                alternatingRowToggle = alternatingRowToggle == Convert.ToBoolean(0);
                cacheTable.Rows.Add(dataRow);
            }

            cacheTable.RenderControl(_writer);
        }