Task InnerInvoke(TransportMessage message) { if (executingSteps.Count == 0) { return Task.CompletedTask; } IIncomingStep step = executingSteps.Dequeue(); return step.Invoke(message, () => InnerInvoke(message)); }
public Task Invoke(TransportMessage message, Func<Task> next) { countdown.Signal(); return next(); }
public Task Invoke(TransportMessage message, Func<Task> next) { Console.WriteLine(message.Id); return next(); }
public async Task Invoke(TransportMessage message, Func<Task> next) { await Task.Delay(1000).ConfigureAwait(false); await next().ConfigureAwait(false); }
static Task Connector(IncomingPipelineFactory factory, TransportMessage message) { var pipeline = factory.Create(); return pipeline.Invoke(message); }
public Task Invoke(TransportMessage message) { executingSteps = new Queue<IIncomingStep>(registeredSteps); return InnerInvoke(message); }