public virtual void InsertItemAtPipelineIndex(int index, PipelineItem <TDelegate> item, bool replaceInPlace = false) { var existingIndex = this.RemoveByName(item.Name); var newIndex = (replaceInPlace && existingIndex != -1) ? existingIndex : index; _pipelineItems.Insert(newIndex, item); }
public virtual void InsertBefore(string name, PipelineItem <TDelegate> item) { var existingIndex = _pipelineItems.FindIndex(i => String.Equals(name, i.Name, StringComparison.Ordinal)); if (existingIndex == -1) { existingIndex = 0; } this.InsertItemAtPipelineIndex(existingIndex, item); }
public virtual void AddItemToEndOfPipeline(PipelineItem <TDelegate> item, bool replaceInPlace = false) { var existingIndex = this.RemoveByName(item.Name); if (replaceInPlace && existingIndex != -1) { this.InsertItemAtPipelineIndex(existingIndex, item); } else { _pipelineItems.Add(item); } }
public virtual void InsertAfter(string name, PipelineItem <TDelegate> item) { var existingIndex = _pipelineItems.FindIndex(i => String.Equals(name, i.Name, StringComparison.Ordinal)); if (existingIndex == -1) { existingIndex = _pipelineItems.Count; } existingIndex++; if (existingIndex > _pipelineItems.Count) { this.AddItemToEndOfPipeline(item); } else { this.InsertItemAtPipelineIndex(existingIndex, item); } }
protected override PipelineItem <Func <Context, CancellationToken, Task <Response> > > Wrap(PipelineItem <Func <Context, Response> > pipelineItem) { return(new PipelineItem <Func <Context, CancellationToken, Task <Response> > >(pipelineItem.Name, (ctx, ct) => Task.FromResult(pipelineItem.Delegate(ctx)))); }
public virtual void AddItemToStartOfPipeline(PipelineItem <TDelegate> item, bool replaceInPlace = false) { this.InsertItemAtPipelineIndex(0, item, replaceInPlace); }
public virtual void InsertItemAtPipelineIndex(int index, PipelineItem <TSyncDelegate> item, bool replaceInPlace = false) { this.InsertItemAtPipelineIndex(index, this.Wrap(item), replaceInPlace); }
public virtual void AddItemToEndOfPipeline(PipelineItem <TSyncDelegate> item, bool replaceInPlace = false) { this.AddItemToEndOfPipeline(this.Wrap(item), replaceInPlace); }
protected abstract PipelineItem <TAsyncDelegate> Wrap(PipelineItem <TSyncDelegate> syncDelegate);
public virtual void InsertAfter(string name, PipelineItem <TSyncDelegate> item) { this.InsertAfter(name, this.Wrap(item)); }
protected override PipelineItem <Func <Context, CancellationToken, Task> > Wrap(PipelineItem <Action <Context> > pipelineItem) { return(new PipelineItem <Func <Context, CancellationToken, Task> >(pipelineItem.Name, (ctx, ct) => { pipelineItem.Delegate(ctx); return Task.FromResult <object>(null); })); }