Example #1
0
        public static string Render()
        {
            var storage = new Storage(StorageHelper.GetSessionStorageKey());
            var list = storage.GetStorage();

            var errorStateCss = list.Any(x => x.IsErrorState) ? " bocce-error" : "";

            var builder = new StringBuilder();
            builder.AppendLine(CssClasses);
            builder.Append("<div class='bocce-results").Append(errorStateCss).Append("'>")
                   .AppendLine("<div class='bocce-results-label'>Bocce Log</div>")
                   .AppendLine("<div class='bocce-results-list'>");
            list.ForEach(x => builder.AppendLine(RenderItem(x)));
            builder.AppendLine("</div></div>");
            builder.AppendLine("<script type='text/javascript'>$(function() { $('.bocce-results .bocce-results-label').click(function() { $('.bocce-results .bocce-results-list').toggle(); }); });</script>");

            storage.Clear();

            return builder.ToString();
        }
        public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data)
        {
            var localData = data.ToString();

            // Try and match data to a TraceRecord and so we an write better output. ToString() on data is putting the running app info on.
            // possible future enhancement of breaking it back to trace record and writing more discrete fields
            try
            {
                var navigator = data as XPathNavigator;
                if (navigator != null)
                {
                    var xElement = navigator.UnderlyingObject as XElement;

                    if (xElement != null)
                    {
                        var singleOrDefault = xElement.Elements().SingleOrDefault(a => a.Name.LocalName == "Description");
                        if (singleOrDefault != null)
                        {
                            localData = singleOrDefault.Value;
                        }
                    }
                }
            }
            catch (Exception)
            {
                //reset
                localData = data.ToString();
            }

            var storage = new Storage(StorageHelper.GetSessionStorageKey());

            // Store the info in http runtime cache
            storage.Write(new LocalizationMessage
            {
                Name = source,
                EventType = eventType.ToString(),
                Id = id,
                Data = localData
            });
        }