Beispiel #1
0
        private void SetupAirlineCompaniesSasTranslator()
        {
            var filterQueueName = "AirlineCompaniesClass";
            var outputQueueName = "AirlineCompaniesSAS";

            var filterChannel = ChannelFactory.CreateQueueChannel(filterQueueName);

            openResources.Add(filterChannel);

            var outputChannel = ChannelFactory.CreateDirectChannel(outputQueueName);

            openResources.Add(outputChannel);

            var consumer = new EventingBasicConsumer(filterChannel);

            consumer.Received += (ch, ea) =>
            {
                // Translation to Class? Must mean JSON right?
                outputChannel.BasicPublish(outputQueueName + "Exchange", outputQueueName + "RoutingKey", null, ea.Body);

                filterChannel.BasicAck(ea.DeliveryTag, false);
                Console.WriteLine("AirlineCompanies sent SAS as Class.");
            };
            var consumerTag = filterChannel.BasicConsume(filterQueueName + "Queue", false, consumer);
        }
Beispiel #2
0
        private void SetupAirlineCompaniesKlmTranslator()
        {
            var filterQueueName = "AirlineCompaniesString";
            var outputQueueName = "AirlineCompaniesKLM";

            var filterChannel = ChannelFactory.CreateQueueChannel(filterQueueName);

            openResources.Add(filterChannel);

            var outputChannel = ChannelFactory.CreateDirectChannel(outputQueueName);

            openResources.Add(outputChannel);

            var consumer = new EventingBasicConsumer(filterChannel);

            consumer.Received += (ch, ea) =>
            {
                var bluffWeather = JsonSerializer.Deserialize <BluffWeatherAirline>(Encoding.ASCII.GetString(ea.Body));

                // Translation to String
                var weatherString = bluffWeather.Country + "," + bluffWeather.NameOfCity + "," + bluffWeather.Temperature + "," + bluffWeather.Clouds;

                outputChannel.BasicPublish(outputQueueName + "Exchange", outputQueueName + "RoutingKey", null, Encoding.ASCII.GetBytes(weatherString));

                filterChannel.BasicAck(ea.DeliveryTag, false);
                Console.WriteLine("AirlineCompanies sent KLM as String.");
            };
            var consumerTag = filterChannel.BasicConsume(filterQueueName + "Queue", false, consumer);
        }
Beispiel #3
0
        void IRunnable.Run()
        {
            Console.WriteLine("Starting EndConsumers");
            var endConsumerQueNames = new string[]
            {
                "AirlineCompaniesSAS",
                "AirlineCompaniesKLM",
                "AirlineCompaniesSWA",
                "AirlineCompaniesBA",
                "AirportInformationCenter",
                "AirTrafficControlCenter"
            };

            foreach (var queueName in endConsumerQueNames)
            {
                var model = ChannelFactory.CreateQueueChannel(queueName);
                openResources.Add(model);

                var consumer = new EventingBasicConsumer(model);
                consumer.Received += (ch, ea) =>
                {
                    Console.WriteLine(queueName + "Recived: " + Encoding.ASCII.GetString(ea.Body));
                    model.BasicAck(ea.DeliveryTag, false);
                };
                var consumerTag = model.BasicConsume(queueName + "Queue", false, consumer);
            }
            Console.ReadKey();
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        private void SetupAirportInformationCenterFilter()
        {
            var filterQueueName = "AirportInformationCenterFilter";
            var outputQueueName = "AirportInformationCenter";

            var filterChannel = ChannelFactory.CreateQueueChannel(filterQueueName);

            openResources.Add(filterChannel);

            var outputChannel = ChannelFactory.CreateDirectChannel(outputQueueName);

            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 BluffWeatherAIC(bluffWeather);

                outputChannel.BasicPublish(outputQueueName + "Exchange", outputQueueName + "RoutingKey", null, Encoding.ASCII.GetBytes(JsonSerializer.Serialize(weather)));

                filterChannel.BasicAck(ea.DeliveryTag, false);
                Console.WriteLine("BluffWeatherAIC sent");
            };
            var consumerTag = filterChannel.BasicConsume(filterQueueName + "Queue", false, consumer);
        }