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)); }
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)); }