public HtmlDocument Chain(ChainRequest chainRequest) { var title = "Chain " + chainRequest.Id; var behaviorChain = _graph.Behaviors.FirstOrDefault(chain => chain.UniqueId == chainRequest.Id); if (behaviorChain == null) { return BuildDocument("Unknown chain", new HtmlTag("span").Text("No behavior chain registered with ID: " + chainRequest.Id)); } var content = new HtmlTag("div").AddClass("main-content"); var document = new HtmlTag("div"); var pattern = behaviorChain.GetRoutePattern(); if( pattern == string.Empty ) { pattern = "(default)"; } document.Append(new HtmlTag("div").Text("Route: " + pattern)); var nodeTable = new TableTag(); nodeTable.AddHeaderRow(header => { header.Header("Category"); header.Header("Description"); header.Header("Type"); }); foreach (var node in behaviorChain) { var description = node.ToString().HtmlEncode().ConvertCRLFToBreaks(); nodeTable.AddBodyRow(row => { row.Cell().Text(node.Category.ToString()); row.Cell().Encoded(false).Text(description); row.Cell().Text(node.GetType().FullName); if (description.Contains(_diagnosticsNamespace)) { row.AddClass(FUBU_INTERNAL_CLASS); } }); } var logDiv = new HtmlTag("div").AddClass("convention-log"); var ul = logDiv.Add("ul"); var observer = _graph.Observer; behaviorChain.Calls.Each( call => observer.GetLog(call).Each( entry => ul.Add("li").Text(entry))); content.Append(new[]{ document, new HtmlTag("h3").Text("Nodes:"), nodeTable, new HtmlTag("h3").Text("Log:"), logDiv}); return BuildDocument(title, content); }
public HtmlDocument Chain(ChainRequest chainRequest) { var title = "Chain " + chainRequest.Id; var behaviorChain = _graph.Behaviors.FirstOrDefault(chain => chain.UniqueId == chainRequest.Id); if (behaviorChain == null) { return(BuildDocument("Unknown chain", new HtmlTag("span").Text("No behavior chain registered with ID: " + chainRequest.Id))); } var content = new HtmlTag("div").AddClass("main-content"); var document = new HtmlTag("div"); var pattern = behaviorChain.GetRoutePattern(); if (pattern == string.Empty) { pattern = "(default)"; } document.Append(new HtmlTag("div").Text("Route: " + pattern)); var nodeTable = new TableTag(); nodeTable.AddHeaderRow(header => { header.Header("Category"); header.Header("Description"); header.Header("Type"); }); foreach (var node in behaviorChain) { var description = node.ToString().HtmlEncode().ConvertCRLFToBreaks(); nodeTable.AddBodyRow(row => { row.Cell().Text(node.Category.ToString()); row.Cell().Encoded(false).Text(description); row.Cell().Text(node.GetType().FullName); if (description.Contains(_diagnosticsNamespace)) { row.AddClass(FUBU_INTERNAL_CLASS); } }); } var logDiv = new HtmlTag("div").AddClass("convention-log"); var ul = logDiv.Add("ul"); var observer = _graph.Observer; behaviorChain.Calls.Each( call => observer.GetLog(call).Each( entry => ul.Add("li").Text(entry))); content.Append(new[] { document, new HtmlTag("h3").Text("Nodes:"), nodeTable, new HtmlTag("h3").Text("Log:"), logDiv }); return(BuildDocument(title, content)); }