void HandleMessage(IConsumeContext <TSubject> context)
        {
            var received = new ReceivedMessageImpl <TSubject>(context);

            try
            {
                using (context.CreateScope())
                {
                    _handler(context, context.Message);
                }
            }
            catch (Exception ex)
            {
                received.SetException(ex);
            }
            finally
            {
                _received.Add(received);
            }
        }
Ejemplo n.º 2
0
        IEnumerable <Action <IConsumeContext <TMessage> > > Selector(TConsumer instance, IConsumeContext <TMessage> messageContext)
        {
            bool accept;

            using (messageContext.CreateScope())
            {
                accept = instance.Accept(messageContext.Message);
            }

            if (accept)
            {
                yield return(context =>
                {
                    context.BaseContext.NotifyConsume(context, typeof(TConsumer).ToShortTypeName(), null);

                    using (context.CreateScope())
                    {
                        instance.Consume(context.Message);
                    }
                });
            }
        }