예제 #1
0
 private static ConsumedMessage.ConsumingResult BuildFailure(IConsumer consumer,
                                                             ConsumedMessageBase message,
                                                             Exception exception)
 {
     consumer.OnError(exception);
     return new ConsumedMessage.Failure(message, consumer, exception);
 }
예제 #2
0
 private static ConsumedMessage.ConsumingResult BuildFailure(IConsumer consumer,
                                                             ConsumedMessageBase message,
                                                             Exception exception)
 {
     consumer.OnError(exception);
     return(new ConsumedMessage.Failure(message, consumer, exception));
 }
예제 #3
0
파일: Results.cs 프로젝트: pichierri/Carrot
 protected ConsumingFailureBase(ConsumedMessageBase message,
                                ConsumedMessage.ConsumingResult[] results,
                                params Exception[] exceptions)
     : base(message, results)
 {
     _exceptions = exceptions;
 }
예제 #4
0
 private AggregateConsumingResult AggregateResult(Task<ConsumingResult[]> task,
                                                  ConsumedMessageBase message,
                                                  IFallbackStrategy fallbackStrategy)
 {
     return task.Result.OfType<Failure>().Any()
             ? BuildErrorResult(task.Result, fallbackStrategy)
             : new Messages.Success(message);
 }
예제 #5
0
파일: Results.cs 프로젝트: emadb/Carrot
 protected ConsumingFailureBase(ConsumedMessageBase message,
                                IFallbackStrategy fallbackStrategy,
                                params Exception[] exceptions)
     : base(message)
 {
     _fallbackStrategy = fallbackStrategy;
     _exceptions = exceptions;
 }
예제 #6
0
        public virtual Task <IPublishResult> ForwardAsync(ConsumedMessageBase message,
                                                          Exchange exchange,
                                                          String routingKey)
        {
            var properties = message.Args.BasicProperties.Clone() as IBasicProperties;
            var body       = message.Args.Body;

            return(PublishInternalAsync(exchange, routingKey, properties, body));
        }
예제 #7
0
 internal static Task<ConsumedMessage.ConsumingResult> SafeConsumeAsync(this IConsumer consumer,
                                                                        ConsumedMessageBase message)
 {
     try
     {
         return consumer.ConsumeAsync(message)
                        .ContinueWith(_ =>
                                      {
                                          if (_.Exception == null)
                                              return new ConsumedMessage.Success(message, consumer);
                                      
                                          return BuildFailure(consumer,
                                                              message,
                                                              _.Exception.GetBaseException());
                                      });
     }
     catch (Exception exception) { return Task.FromResult(BuildFailure(consumer, message, exception)); }
 }
예제 #8
0
        internal static Task <ConsumedMessage.ConsumingResult> SafeConsumeAsync(this IConsumer consumer,
                                                                                ConsumedMessageBase message)
        {
            try
            {
                return(consumer.ConsumeAsync(message)
                       .ContinueWith(_ =>
                {
                    if (_.Exception == null)
                    {
                        return new ConsumedMessage.Success(message, consumer);
                    }

                    return BuildFailure(consumer,
                                        message,
                                        _.Exception.GetBaseException());
                }));
            }
            catch (Exception exception) { return(Task.FromResult(BuildFailure(consumer, message, exception))); }
        }
예제 #9
0
파일: Results.cs 프로젝트: emadb/Carrot
 internal ConsumingFailure(ConsumedMessageBase message,
                           IFallbackStrategy fallbackStrategy,
                           params Exception[] exceptions)
     : base(message, fallbackStrategy, exceptions)
 {
 }
예제 #10
0
파일: Results.cs 프로젝트: emadb/Carrot
 protected AggregateConsumingResult(ConsumedMessageBase message)
 {
     Message = message;
 }
예제 #11
0
파일: Results.cs 프로젝트: emadb/Carrot
 internal UnsupportedMessageConsumingFailure(ConsumedMessageBase message, IFallbackStrategy fallbackStrategy)
     : base(message, fallbackStrategy)
 {
 }
예제 #12
0
파일: Results.cs 프로젝트: emadb/Carrot
 internal Success(ConsumedMessageBase message)
     : base(message)
 {
 }
예제 #13
0
 public void Apply(IOutboundChannel channel, ConsumedMessageBase message)
 {
 }
예제 #14
0
파일: Results.cs 프로젝트: pichierri/Carrot
 internal Success(ConsumedMessageBase message, ConsumedMessage.ConsumingResult[] results)
     : base(message, results)
 {
 }
예제 #15
0
 public void Apply(IOutboundChannel channel, ConsumedMessageBase message) { }
예제 #16
0
 internal IEnumerable <IConsumer> FindSubscriptions(ConsumedMessageBase message)
 {
     return(_subscriptions.Where(_ => message.Match(_.Key))
            .SelectMany(_ => _.Value));
 }
예제 #17
0
파일: Results.cs 프로젝트: pichierri/Carrot
 internal UnresolvedMessageConsumingFailure(ConsumedMessageBase message,
                                            ConsumedMessage.ConsumingResult[] results)
     : base(message, results)
 {
 }
예제 #18
0
파일: Results.cs 프로젝트: pichierri/Carrot
 internal ConsumingFailure(ConsumedMessageBase message,
                           ConsumedMessage.ConsumingResult[] results,
                           params Exception[] exceptions)
     : base(message, results, exceptions)
 {
 }
예제 #19
0
 internal Failure(ConsumedMessageBase message, IConsumer consumer, Exception exception)
     : base(message, consumer)
 {
     Exception = exception;
 }
예제 #20
0
 protected ConsumingResult(ConsumedMessageBase message, IConsumer consumer)
 {
     Message = message;
     Consumer = consumer;
 }
예제 #21
0
파일: Results.cs 프로젝트: pichierri/Carrot
 internal CorruptedMessageConsumingFailure(ConsumedMessageBase message,
                                           ConsumedMessage.ConsumingResult[] results)
     : base(message, results)
 {
 }
예제 #22
0
 public void Apply(IOutboundChannel channel, ConsumedMessageBase message)
 {
     channel.ForwardAsync(message, _exchange, String.Empty);
 }
예제 #23
0
 Task IConsumer.ConsumeAsync(ConsumedMessageBase message)
 {
     return(ConsumeAsync(message.As <TMessage>()));
 }
예제 #24
0
 public Success(ConsumedMessageBase message, IConsumer consumer)
     : base(message, consumer)
 {
 }
예제 #25
0
파일: Results.cs 프로젝트: pichierri/Carrot
 protected AggregateConsumingResult(ConsumedMessageBase message, ConsumedMessage.ConsumingResult[] results)
 {
     Message = message;
     Results = results;
 }
예제 #26
0
 public void Apply(IOutboundChannel channel, ConsumedMessageBase message)
 {
     channel.ForwardAsync(message, _exchange, String.Empty);
 }
예제 #27
0
 public ConsumingResultStub(ConsumedMessageBase message, IConsumer consumer) : base(message, consumer)
 {
 }