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);
        }
Ejemplo n.º 4
0
 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()));
     }
 }
Ejemplo n.º 5
0
 public override Task <object> Invoke(IPacketListenerContext context)
 {
     return(Next?.Invoke(context));
 }
 protected abstract Task Invoke(IPacketListenerContext context);
Ejemplo n.º 7
0
 public abstract Task <object> Invoke(IPacketListenerContext context);
Ejemplo n.º 8
0
 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);
 }
Ejemplo n.º 10
0
 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));
 }