コード例 #1
0
        public BehaviorCorrelation(BehaviorNode node)
        {
            var chain = node.ParentChain();
            ChainId = chain == null ? Guid.Empty : chain.UniqueId;

            Node = node;
        }
コード例 #2
0
        public BehaviorNodeTraceTag(BehaviorNode node, RequestLog log) : base("li")
        {
            var description = Description.For(node);
            AddClass("node-trace").Data("node-id", node.UniqueId.ToString());

            var container = Add("div").AddClass("node-trace-container");
            container.Text(description.Title);

            var start = log.FindStep<BehaviorStart>(x => x.Correlation.Node == node);
            var finish = log.FindStep<BehaviorFinish>(x => x.Correlation.Node == node);

            if (start == null)
            {
                AddClass("gray");
                return;
            }

            var exception = log.FindStep<ExceptionReport>(x => node.UniqueId.Equals(x.CorrelationId));
            if (exception != null || !finish.Log.Succeeded)
            {
                AddClass("exception");
            }

            var duration = finish.RequestTimeInMilliseconds - start.RequestTimeInMilliseconds;

            container.Add("span").Text(duration.ToString() + " ms").AddClass("node-trace-duration");
        }
コード例 #3
0
        //this is hideous but wanted to show an idea.
        public HtmlTag BuildLabel(BehaviorNode behaviorNode)
        {
            // TODO -- come back and policize this

            var span = new HtmlTag("span").AddClass("label");
            var pp = behaviorNode.GetType().PrettyPrint();
            span.Text("behavior");

            if (pp.StartsWith("WebForm"))
            {
                span.Text("View");
                span.AddClass("notice");
            }
            else if (pp.StartsWith("Call"))
            {
                span.AddClass("warning");
                span.Text("continuation");
            }
            else if (!behaviorNode.GetType().Name.StartsWith("Fubu"))
            {
                span.Text("fubu");
            }

            return span;
        }
コード例 #4
0
        public static HtmlTag Visualize(this IFubuPage page, BehaviorNode node)
        {
            var visualizer = page.Get<Visualizer>(); // TODO -- change this
            var model = visualizer.ToVisualizationSubject(node);

            var html =
                page.CollapsiblePartialFor<BehaviorNodeViewModel>(model).Title(model.Description.Title).ToString();

            return new HtmlTag("a", a => {
                a.Attr("name", node.UniqueId.ToString());
                a.Next = new LiteralTag(html);
            });
        }
コード例 #5
0
 public BehaviorTracerNode(BehaviorNode inner)
 {
     inner.AddBefore(this);
 }
コード例 #6
0
 public BehaviorTracer(BehaviorNode node, IChainExecutionLog log)
 {
     _node = node;
     _log = log;
 }
コード例 #7
0
        public static bool NonDiagnosticNodes(BehaviorNode node)
        {
            if (node is DiagnosticNode || node is BehaviorTracerNode) return false;

            return true;
        }
コード例 #8
0
 public ChainedBehaviorExpression Chain()
 {
     return new ChainedBehaviorExpression(node => _topBehavior = node);
 }
コード例 #9
0
ファイル: NodeRemoved.cs プロジェクト: ruizbennett/fubumvc
 public NodeRemoved(BehaviorNode node)
 {
     _node = node;
 }
コード例 #10
0
ファイル: NodeReplaced.cs プロジェクト: ruizbennett/fubumvc
 public NodeReplaced(BehaviorNode oldNode, BehaviorNode newNode)
 {
     _oldNode = oldNode;
     _newNode = newNode;
 }