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); }
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)); }