Пример #1
0
        public string ToHtml()
        {
            var table = new TableTag();

            table.AddClass("table");
            table.AddClass("table-striped");
            table.AddHeaderRow(row =>
            {
                row.Header("Details");
                row.Header("Duration (ms)");
                row.Header("Method");
                row.Header("Endpoint");
                row.Header("Status");
                row.Header("Content Type");
            });

            _logs.Each(log =>
            {
                var url = _system.Application.RootUrl.TrimEnd('/') + "/_fubu/#/fubumvc/request-details/" + log.Id;

                table.AddBodyRow(row =>
                {
                    row.Cell().Add("a").Text("Details").Attr("href", url).Attr("target", "_blank");
                    row.Cell(log.ExecutionTime.ToString()).Attr("align", "right");
                    row.Cell(log.HttpMethod);
                    row.Cell(log.Endpoint);
                    row.Cell(log.StatusCode.ToString());
                    row.Cell(log.ContentType);
                });
            });



            return(table.ToString());
        }
        public HtmlTag get_tasks()
        {
            var peers = _repository.FindPeers();
            var cache = new Cache <Uri, TransportNode>();

            peers.Each(peer => peer.OwnedTasks.Each(x => cache[x] = peer));


            var tag = new HtmlTag("div");

            tag.Add("h1").Text("Task Assignements");


            var table = new TableTag();

            tag.Append(table);

            table.AddClass("table");

            table.AddHeaderRow(row => {
                row.Header("Task");
                row.Header("Assigned to");
                row.Header("Control Channel");
            });

            var tasks = _tasks.PermanentTasks().Union(_tasks.ActiveTasks()).ToArray();

            tasks.Each(uri => {
                table.AddBodyRow(row => addRow(row, uri, cache));
            });

            return(tag);
        }
Пример #3
0
        private HtmlTag toMessageTable()
        {
            var table = new TableTag();

            table.AddClass("table").AddClass("table-striped");

            table.AddHeaderRow(row =>
            {
                row.Header("Time").Attr("title",
                                        "This is the time in milliseconds since the specification started running that this message was first logged");
                row.Header("Correlation Id");
                row.Header("Message Type");
                row.Header("Details");
            });

            foreach (var history in _envelopes)
            {
                table.AddBodyRow(row =>
                {
                    row.Cell(history.Time.ToString()).Style("text-align", "right");
                    row.Cell(history.CorrelationId.ToString());
                    row.Cell(history.MessageType);
                    row.Add("td/a").Text("details").Attr("href", "#message-" + history.CorrelationId);
                });
            }



            return(table);
        }
Пример #4
0
        public HttpRequestReport()
        {
            _table.AddClass("table");

            _table.AddHeaderRow(row =>
            {
                row.Header("Url");
                row.Header("Status Code");
                row.Header("Duration");
                row.Header("Request Headers");
                row.Header("Response Headers");
            });
        }
Пример #5
0
        private static TableTag buildTable()
        {
            var table = new TableTag();

            table.AddClass("table table-striped table-bordered table-condensed");

            table.AddHeaderRow(row =>
            {
                row.Header("Property");
                row.Header("Handler");
                row.Header("Value(s)");
            });

            return(table);
        }
Пример #6
0
        public string ToHtml()
        {
            var table = new TableTag();

            table.AddClass("table");
            table.AddClass("table-striped");
            table.AddHeaderRow(row =>
            {
                row.Header("Details");
                row.Header("Duration (ms)");
                row.Header("Method");
                row.Header("Endpoint");
                row.Header("Status");
                row.Header("Content Type");
            });

            _logs.Each(log =>
            {
                var url = _runtime.BaseAddress.TrimEnd('/') + "/_fubu/#/fubumvc/request-details/" + log.Id;

                table.AddBodyRow(row =>
                {
                    row.Cell().Add("a").Text("Details").Attr("href", url).Attr("target", "_blank");
                    row.Cell(log.ExecutionTime.ToString()).Attr("align", "right");

                    var summary = new HttpRequestSummary(log);
                    row.Cell(summary.method);
                    row.Cell(log.Title());
                    row.Cell(summary.status.ToString());
                    row.Cell(summary.contentType);
                });
            });


            return(table.ToString());
        }
Пример #7
0
        private void writeProperties(Description description)
        {
            if (description.Properties.Any())
            {
                var table = new TableTag();
                table.AddClass("desc-properties");

                description.Properties.Each((key, value) =>
                {
                    table.AddBodyRow(row =>
                    {
                        row.Header(key);
                        row.Cell(value);
                    });
                });

                Append(table);
            }
        }
Пример #8
0
        public static TableTag Write(LoggingSession session)
        {
            var table = new TableTag();

            table.AddClass("table");
            table.AddHeaderRow(r =>
            {
                r.Header("Description");
                r.Header("Provenance");
            });

            session.EachLog((target, log) =>
            {
                table.AddBodyRow(row =>
                {
                    row.Add("td", td =>
                    {
                        td.Append(new HtmlTag("h3").Text("Directive: " + PackagingDiagnostics.GetTypeName(target)));
                        td.Append(new HtmlTag("h5").Text("Desc: " + target.ToString()));
                        var time = new HtmlTag("h6").Text(log.TimeInMilliseconds.ToString() + "ms");
                        td.Append(time);
                    });

                    row.Cell(log.Provenance);
                });

                if (log.FullTraceText().IsNotEmpty())
                {
                    table.AddBodyRow(row =>
                    {
                        row.Cell().Attr("colspan", "2").AddClass("log").Add("pre").Text(log.FullTraceText());
                        if (!log.Success)
                        {
                            row.AddClass("failure");
                        }
                    });
                }
            });

            return(table);
        }
        // This is the hook that lets you generate raw HTML
        // that will show up as a tab within the results for a spec
        string Report.ToHtml()
        {
            var table = new TableTag();

            table.AddClass("table").AddClass("table-striped");

            table.AddHeaderRow(row =>
            {
                row.Header("Category");
                row.Header("Level");
                row.Header("Message");
            });

            foreach (var record in Records)
            {
                table.AddBodyRow(row =>
                {
                    row.Cell(record.Category);
                    row.Cell(record.Level);
                    row.Cell(record.Message);
                });

                // Write out the full stack trace if there's an exception
                if (record.ExceptionText.IsNotEmpty())
                {
                    table.AddBodyRow(row =>
                    {
                        row.Cell().Attr("colspan", "3").AddClass("bg-warning").Add("pre").AddClass("bg-warning").Text(record.ExceptionText);
                    });
                }
            }



            return(table.ToString());
        }
Пример #10
0
        public HtmlTag ToTableDetails()
        {
            var div     = new HtmlTag("div");
            var headers = new TableTag();

            div.Add("h5").Text("Headers");
            div.Append(headers);
            headers.AddClass("table").AddClass("table-striped");
            headers.AddHeaderRow(row =>
            {
                row.Header("Header Key");
                row.Header("Header Value");
            });

            var envelope = Records[0].Envelope;

            headers.WriteEnvelopeProperty(envelope, x => x.Source);
            headers.WriteEnvelopeProperty(envelope, x => x.MessageType);
            headers.WriteEnvelopeProperty(envelope, x => x.ReplyUri);
            headers.WriteEnvelopeProperty(envelope, x => x.ContentType);
            headers.WriteEnvelopeProperty(envelope, x => x.CorrelationId);
            headers.WriteEnvelopeProperty(envelope, x => x.CausationId);

            // TODO -- come back and add saga id

            headers.WriteEnvelopeProperty(envelope, x => x.Destination);
            headers.WriteEnvelopeProperty(envelope, x => x.AcceptedContentTypes);
            headers.WriteEnvelopeProperty(envelope, x => x.ReplyRequested);
            headers.WriteEnvelopeProperty(envelope, x => x.AckRequested);
            headers.WriteEnvelopeProperty(envelope, x => x.ExecutionTime);
            headers.WriteEnvelopeProperty(envelope, x => x.DeliverBy);
            headers.WriteEnvelopeProperty(envelope, x => x.ReceivedAt);


            foreach (var pair in envelope.Headers)
            {
                headers.AddBodyRow(row =>
                {
                    row.Cell(pair.Key);
                    row.Cell(pair.Value);
                });
            }

            var table = new TableTag();

            div.Add("h5").Text("Activity");
            div.Append(table);

            table.AddClass("table").AddClass("table-striped");


            table.AddHeaderRow(row =>
            {
                row.Header("Time");
                row.Header("Service");
                row.Header("Message");
            });

            foreach (var record in Records)
            {
                table.AddBodyRow(row =>
                {
                    row.Cell(record.Time.ToString()).Style("text-align", "right");
                    row.Cell(record.ServiceName);
                    row.Cell(record.Message);

                    if (record.ExceptionText.IsNotEmpty())
                    {
                        row.AddClass("bg-warning");
                    }
                });

                if (record.ExceptionText.IsNotEmpty())
                {
                    table.AddBodyRow(row =>
                    {
                        row.Attr("colSpan", "3");
                        row.Add("td/pre").Text(record.ExceptionText);
                    });
                }
            }

            return(div);
        }
Пример #11
0
        public HtmlTag ToTableDetails()
        {
            var div     = new HtmlTag("div");
            var headers = new TableTag();

            div.Add("h5").Text("Headers");
            div.Append(headers);
            headers.AddClass("table").AddClass("table-striped");
            headers.AddHeaderRow(row =>
            {
                row.Header("Header Key");
                row.Header("Header Value");
            });

            foreach (var pair in Records[0].Envelope.Headers)
            {
                headers.AddBodyRow(row =>
                {
                    row.Cell(pair.Key);
                    row.Cell(pair.Value);
                });
            }

            var table = new TableTag();

            div.Add("h5").Text("Activity");
            div.Append(table);

            table.AddClass("table").AddClass("table-striped");


            table.AddHeaderRow(row =>
            {
                row.Header("Time");
                row.Header("Service");
                row.Header("Message");
            });

            foreach (var record in Records)
            {
                table.AddBodyRow(row =>
                {
                    row.Cell(record.Time.ToString()).Style("text-align", "right");
                    row.Cell(record.ServiceName);
                    row.Cell(record.Message);

                    if (record.ExceptionText.IsNotEmpty())
                    {
                        row.AddClass("bg-warning");
                    }
                });

                if (record.ExceptionText.IsNotEmpty())
                {
                    table.AddBodyRow(row =>
                    {
                        row.Attr("colSpan", "3");
                        row.Add("td/pre").Text(record.ExceptionText);
                    });
                }
            }

            return(div);
        }