示例#1
0
        public Task <PipelineContinuation> Operate(PipelineContext context)
        {
            var handlerAction = context.RouteData()?.HandlerAction;

            if (handlerAction == null)
            {
                return(Task.FromResult(PipelineContinuation.Continue));
            }

            var operators = handlerAction.Operators.SelectMany(o =>
            {
                var attributeOperators = this.container.ResolveAll(o.OperatorType).Cast <IAttributePipelineOperator>();

                foreach (var attributeOperator in attributeOperators)
                {
                    attributeOperator.Attribute = o.Attribute;
                }

                return(attributeOperators);
            })
                            .OrderBy(a => a.Order)
                            .ToArray();

            return(PipelinePumper.Pump(context, operators));
        }
示例#2
0
        public virtual Task Serve(PipelineContext context)
        {
            context.Application = this;
            var operatorInstances = new List <IPipelineOperator>();

            foreach (var pipelineOperatorType in this.pipelineOperators)
            {
                operatorInstances.Add(this.container.Resolve(pipelineOperatorType) as IPipelineOperator);
            }

            return(PipelinePumper.Pump(context, operatorInstances));
        }