예제 #1
0
        public virtual PipelineWrapper AddDebugProcessor(string group, string name, int index)
        {
            //Create a core processor
            var config        = BaseFactory.GetConfigNode("pipelines/pipelineDebug/processor");
            var coreProcessor = new CoreProcessor();

            coreProcessor.Initialize(config);

            //Initialize it so we can add settings
            var debugProcessor = ReflectionService.InitializeDebugProcessor(coreProcessor);

            debugProcessor.PipelineGroup = group;
            debugProcessor.PipelineName  = name;
            debugProcessor.PipelineIndex = index;
            debugProcessor.Taxonomies    = SettingsService.DefaultTaxonomies;

            //Add it to our simple pipeline
            var pipeline           = GetPipeline(group, name);
            var processorReference = new ProcessorWrapper(coreProcessor, pipeline, debugProcessor);

            pipeline.Processors.Insert(index, processorReference);
            ProcessorMap.Add(debugProcessor.Id, processorReference);

            //Set the result as the active processors
            ReflectionService.SetProcessors(pipeline.CorePipeline, pipeline.Processors.Select(wrapper => wrapper.CoreProcessor).ToArray());
            RefreshProcessorIndexes(pipeline);

            return(pipeline);
        }
    /// <summary>
    /// Processes this instance.
    /// </summary>
    /// <param name="pipelineArgs">The pipeline args.</param>
    public void Process(PipelineArgs pipelineArgs)
    {
      CoreProcessor processor = new CoreProcessor();
      bool isFakeProcessor = string.IsNullOrEmpty(this.processorDefinition.Type) && string.IsNullOrEmpty(this.processorDefinition.TypeReference);

      if (!isFakeProcessor)
      {
        XmlDocument medium = new XmlDocument();

        using (XmlReader reader = this.processorDefinition.ProcessorElement.CreateReader())
        {
          medium.Load(reader);
        }

        processor.Initialize(medium.DocumentElement);
      }

      EventHandler<RuntimeProcessorCallEventArgs> beforePipelineCalled = BeforePipelineProcessorCalled;
      if (beforePipelineCalled != null)
      {
        beforePipelineCalled(this, new RuntimeProcessorCallEventArgs(this.pipelineName, this.pipelineDomain, this.processorIndex, this.processorDefinition, pipelineArgs));
      }

      if (!isFakeProcessor)
      {
        processor.Invoke(new object[] { pipelineArgs });
      }

      EventHandler<RuntimeProcessorCallEventArgs> afterPipelineCalled = AfterPipelineProcessorCalled;
      if (afterPipelineCalled != null)
      {
        afterPipelineCalled(this, new RuntimeProcessorCallEventArgs(this.pipelineName, this.pipelineDomain, this.processorIndex, this.processorDefinition, pipelineArgs));
      }
    }
        /// <summary>
        /// Processes this instance.
        /// </summary>
        /// <param name="pipelineArgs">The pipeline args.</param>
        public void Process(PipelineArgs pipelineArgs)
        {
            CoreProcessor processor       = new CoreProcessor();
            bool          isFakeProcessor = string.IsNullOrEmpty(this.processorDefinition.Type) && string.IsNullOrEmpty(this.processorDefinition.TypeReference);

            if (!isFakeProcessor)
            {
                XmlDocument medium = new XmlDocument();

                using (XmlReader reader = this.processorDefinition.ProcessorElement.CreateReader())
                {
                    medium.Load(reader);
                }

                processor.Initialize(medium.DocumentElement);
            }

            EventHandler <RuntimeProcessorCallEventArgs> beforePipelineCalled = BeforePipelineProcessorCalled;

            if (beforePipelineCalled != null)
            {
                beforePipelineCalled(this, new RuntimeProcessorCallEventArgs(this.pipelineName, this.pipelineDomain, this.processorIndex, this.processorDefinition, pipelineArgs));
            }

            if (!isFakeProcessor)
            {
                processor.Invoke(new object[] { pipelineArgs });
            }

            EventHandler <RuntimeProcessorCallEventArgs> afterPipelineCalled = AfterPipelineProcessorCalled;

            if (afterPipelineCalled != null)
            {
                afterPipelineCalled(this, new RuntimeProcessorCallEventArgs(this.pipelineName, this.pipelineDomain, this.processorIndex, this.processorDefinition, pipelineArgs));
            }
        }