public RoutingInfo GetRoutingInfo(IDictionary<string, string> routingHints) { string topic = routingHints.GetMessageTopic(); Exchange theOneExchange = new Exchange( this.Name, this.Hostname, this.VirtualHost, this.Port, topic, string.Format("{0}#{1}", this.ClientProfile, topic), "direct", false, true); RouteInfo theOneRoute = new RouteInfo(theOneExchange, theOneExchange); return new RoutingInfo(new RouteInfo[] { theOneRoute }); }
public RoutingInfo GetRoutingInfo(IDictionary <string, string> routingHints) { string topic = routingHints.GetMessageTopic(); Exchange theOneExchange = new Exchange( this.Name, this.Hostname, this.VirtualHost, this.Port, topic, string.Format("{0}#{1}", this.ClientProfile, topic), "direct", false, true); RouteInfo theOneRoute = new RouteInfo(theOneExchange, theOneExchange); return(new RoutingInfo(new RouteInfo[] { theOneRoute })); }
public RoutingInfo GetFallbackRoute(string topic) { // either use the given named queue, or build one dynamically string oneQueueToRuleThemAll = this.QueueName ?? string.Format( "{0}#{1}#{2}", this.ClientName, ++UniqueProcessId, topic); // there's only one exchange Exchange oneExchangeToFindThem = new Exchange( this.ExchangeName, this.Hostname, this.VHost, this.Port, topic, oneQueueToRuleThemAll, this.ExchangeType, this.IsDurable, this.IsAutoDelete, this.Arguments); // for both producing and consuming RouteInfo oneRouteToBringThemAll = new RouteInfo(oneExchangeToFindThem, oneExchangeToFindThem); // make a list out of the one route List<RouteInfo> andInTheDarknessBindThem = new RouteInfo[] { oneRouteToBringThemAll }.ToList(); // and create routing info from it return new RoutingInfo(andInTheDarknessBindThem); }