protected override Expression <Func <RabbitMqExchangeOptions, bool> > ToExpression() { var allowedExchangeTypes = ExchangeType.All() !; // Do not validate dead letter exchange type if actual DeadLetterExchange is empty. return(options => string.IsNullOrEmpty(options.DeadLetterExchange) || allowedExchangeTypes.Contains(options.DeadLetterExchangeType)); }
public void TestExchangeTypeValidation() { string uriLike = "direct:///"; PublicationAddress addr = PublicationAddress.Parse(uriLike); int found = 0; foreach (string exchangeType in ExchangeType.All()) { if (exchangeType.Equals(addr.ExchangeType)) { found++; } } Assert.AreEqual(1, found); }
/// <summary> /// Exchange declare /// </summary> /// <param name="exchangeName">exchange name</param> /// <param name="exchangeType">exchange type <see cref="ExchangeType"/></param> /// <param name="isDurable">is durable</param> /// <param name="isAutoDelete">is auto delete</param> /// <param name="arguments">arguments,default is null</param> public void ExchangeDeclare(string exchangeName, string exchangeType, bool isDurable, bool isAutoDelete = false, IDictionary <string, object> arguments = null) { Check.Argument.IsNotEmpty(exchangeName, nameof(exchangeName)); Check.Argument.IsNotEmpty(exchangeName, nameof(exchangeType)); exchangeType = exchangeType.ToLower(); if (!ExchangeType.All().Contains(exchangeType)) { Check.Argument.IsNotValid(exchangeType, nameof(exchangeType)); } using (IConnection connection = _RabbitmqProvider.CreateCollection()) { using (IModel channel = connection.CreateModel()) { channel.ExchangeDeclare(exchangeName, exchangeType, isDurable, isAutoDelete, arguments); } } }
protected override Expression <Func <RabbitMqExchangeOptions, bool> > ToExpression() { var allowedExchangeTypes = ExchangeType.All() !; return(options => allowedExchangeTypes.Contains(options.Type)); }