public static int GetHashCode(AsyncEventHandler <TEventArgs> handler)
            {
                var hashCode = -335093136;

                hashCode = hashCode * -1521134295 + (handler?.Target?.GetHashCode()).GetValueOrDefault();
                hashCode = hashCode * -1521134295 + (handler?.GetMethodInfo()?.GetHashCode()).GetValueOrDefault();
                return(hashCode);
            }
Exemple #2
0
        public string StartMessageConsumer(AsyncEventHandler <BasicDeliverEventArgs> consumeMessageHandler)
        {
            if (Model == null)
            {
                throw new RabbitMqWrapperException(
                          $"{nameof(RabbitMqWrapper)}.{nameof(Start)} must be run before calling {nameof(StartMessageConsumer)}");
            }

            var consumer = new AsyncEventingBasicConsumer(Model);

            consumer.Received += async(sender, @event) => { await consumeMessageHandler(sender, @event); };

            var consumerTag = Model.BasicConsume(QueueName, _autoAck, consumer);

            Logger.Trace($"{nameof(RabbitMqWrapper)}.{nameof(StartMessageConsumer)}",
                         new LogItem("Event", "Message handler subscribed to queue"),
                         new LogItem("QueueName", QueueName),
                         new LogItem("ConsumerTag", consumerTag),
                         new LogItem("HandlerMethod", () => consumeMessageHandler.GetMethodInfo().Name));
            return(consumerTag);
        }
 public bool IsMatch(AsyncEventHandler <TEventArgs> handler)
 {
     return(ReferenceEquals(handler.Target, _weakTarget?.Target) &&
            handler.GetMethodInfo().Equals(_method));
 }