private void SetupAirlineCompaniesSwaAndBaTranslator() { var filterQueueName = "AirlineCompaniesXML"; var outputQueueNames = new string[] { "AirlineCompaniesSWA", "AirlineCompaniesBA" }; var exchangeName = "AirlineCompaniesExchange"; var filterChannel = ChannelFactory.CreateQueueChannel(filterQueueName); openResources.Add(filterChannel); var outputChannel = ChannelFactory.CreateFanoutChannel(exchangeName, outputQueueNames); openResources.Add(outputChannel); var consumer = new EventingBasicConsumer(filterChannel); consumer.Received += (ch, ea) => { var bluffWeather = JsonSerializer.Deserialize <BluffWeatherAirline>(Encoding.ASCII.GetString(ea.Body)); // Translation to XML using (var stringwriter = new System.IO.StringWriter()) { var serializer = new XmlSerializer(bluffWeather.GetType()); serializer.Serialize(stringwriter, bluffWeather); outputChannel.BasicPublish(exchangeName + "Exchange", exchangeName + "RoutingKey", null, Encoding.ASCII.GetBytes(stringwriter.ToString())); filterChannel.BasicAck(ea.DeliveryTag, false); Console.WriteLine("AirlineCompanies sent SWA and BA as XML."); } }; var consumerTag = filterChannel.BasicConsume(filterQueueName + "Queue", false, consumer); }
public WeatherEnricher() { var fanoutQueueNames = new string[] { "AirlineCompaniesFilter", "AirportInformationCenterFilter", "AirTrafficControlCenterFilter" }; _client = new HttpClient(); _fanoutChannel = ChannelFactory.CreateFanoutChannel("BluffWeatherCanon", fanoutQueueNames); }
private void SetupAirlineCompaniesFilter() { var filterQueueName = "AirlineCompaniesFilter"; var outputQueueName = "AirlineCompanies"; var filterChannel = ChannelFactory.CreateQueueChannel(filterQueueName); openResources.Add(filterChannel); // Fanout var fanoutQueueNames = new string[] { "AirlineCompaniesString", "AirlineCompaniesClass", "AirlineCompaniesXML" }; var outputChannel = ChannelFactory.CreateFanoutChannel(outputQueueName, fanoutQueueNames); openResources.Add(outputChannel); var consumer = new EventingBasicConsumer(filterChannel); consumer.Received += (ch, ea) => { var bluffWeather = JsonSerializer.Deserialize <BluffWeather>(Encoding.ASCII.GetString(ea.Body)); // Translation var weather = new BluffWeatherAirline(bluffWeather); outputChannel.BasicPublish(outputQueueName + "Exchange", outputQueueName + "RoutingKey", null, Encoding.ASCII.GetBytes(JsonSerializer.Serialize(weather))); filterChannel.BasicAck(ea.DeliveryTag, false); Console.WriteLine("BluffWeatherAirline sent"); }; var consumerTag = filterChannel.BasicConsume(filterQueueName + "Queue", false, consumer); }