internal Task <object> Invoke(IPacketListenerContext context) { Contract.Requires <ArgumentNullException>(context != null); this.tail.Next = new TailModule(); return(this.head.Invoke(context)); }
public static IPacketContentReaderProvider GetReaderProvider(this IPacketListenerContext context) { Contract.Requires <ArgumentNullException>(context != null); Contract.Ensures(Contract.Result <IPacketContentReaderProvider>() != null); return(context.GetService <IPacketContentReaderProvider>()); }
public static object GetBody(this IPacketListenerContext context, Type type) { Contract.Requires <ArgumentNullException>(context != null); Contract.Requires <ArgumentNullException>(type != null); Contract.Ensures(Contract.Result <object>() != null); var reader = context.GetReaderProvider() .GetReader(context.Request.Payload, type); var body = reader.Read(); return(body); }
protected override Task Invoke(IPacketListenerContext context) { try { context.Logger.LogTrace($"Start processing message {context.Request.Id}"); var result = Next(context.Environment); context.Logger.LogTrace($"Finished processing message {context.Request.Id}"); return(result); } catch (OperationCanceledException e) { context.Logger.LogWarning(e.Message, e); return(context.Request.Abandon()); } catch (Exception e) { context.Logger.LogError(e.Message, e); return(Task.WhenAll(context.ReplyChannel.Send(e), context.Request.DeadLetter())); } }
public override Task <object> Invoke(IPacketListenerContext context) { return(Next?.Invoke(context)); }
protected abstract Task Invoke(IPacketListenerContext context);
public abstract Task <object> Invoke(IPacketListenerContext context);
public override Task <object> Invoke(IPacketListenerContext context) { throw new OperationCanceledException( $"Unable to find module capable of handling the message of type \"{context.Request.Payload.Type}\""); }
protected override async Task Invoke(IPacketListenerContext context) { await context.ReplyChannel.Send(context.Response).ConfigureAwait(false); }
protected override async Task Invoke(IPacketListenerContext context) { context.Response = (await this.modules.Invoke(context).ConfigureAwait(false)).Pack(); await Next(context.Environment).ConfigureAwait(false); }
protected override Task Invoke(IPacketListenerContext context) { Contract.Requires <ArgumentNullException>(context != null); return(default(Task)); }