예제 #1
0
        protected override void OnProcessorError(EventPattern <PipelineProcessorExceptionEventArgs> args)
        {
            PipelineTrace          pipelineTrace  = _traceStack.Peek();
            Stack <ProcessorTrace> processorStack = pipelineTrace.ProcessorStack;
            ProcessorTrace         processorTrace = processorStack.Pop();

            pipelineTrace.Traces.Add(processorTrace);
        }
예제 #2
0
        protected override void OnProcessorComplete(EventPattern <PipelineProcessorEventArgs> args)
        {
            PipelineTrace          pipelineTrace  = _traceStack.Peek();
            Stack <ProcessorTrace> processorStack = pipelineTrace.ProcessorStack;
            ProcessorTrace         processorTrace = processorStack.Pop();

            switch (args.EventArgs.PipelineContext)
            {
            case PropertyContext processorContext:
                processorTrace.Faulted     = processorContext.Faulted;
                processorTrace.PostContext = JsonConvert.SerializeObject(processorContext.Context,
                                                                         Formatting.None,
                                                                         new JsonSerializerSettings {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });
                break;
            }

            pipelineTrace.Traces.Add(processorTrace);
        }
예제 #3
0
        protected override void OnProcessorRun(EventPattern <PipelineProcessorEventArgs> args)
        {
            var trace = new ProcessorTrace
            {
                ProcessorType = args.EventArgs.ProcessorType
            };

            switch (args.EventArgs.PipelineContext)
            {
            case PropertyContext processorContext:
                trace.PreContext = JsonConvert.SerializeObject(processorContext.Context,
                                                               Formatting.None,
                                                               new JsonSerializerSettings {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });
                break;
            }

            var pipelineStack  = _traceStack.Peek();
            var processorStack = pipelineStack.ProcessorStack;

            processorStack.Push(trace);
        }