Example #1
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);
        }
Example #2
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);
        }
Example #3
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);
        }
Example #4
0
        private void SendSequenceIfFull(Guid correlationId)
        {
            //wait for all strategy
            var totalLuggage = int.Parse(_luggageDocuments[correlationId].First().Root.Element("TotalLuggage").Value);

            var coll = _luggageDocuments[correlationId];

            if (totalLuggage > coll.Count())
            {
                return;
            }

            string sequencedCheckIn = "SequencedCheckIn";
            IModel channel          = ChannelFactory.CreateDirectChannel(sequencedCheckIn);

            var luggageColl = _luggageDocuments[correlationId].OrderBy(d => d.Root.Element("Identification"));

            foreach (var luggageDocument in luggageColl)
            {
                channel.BasicPublish(sequencedCheckIn + "Exchange", sequencedCheckIn + "RoutingKey", null, luggageDocument.ToByteArray());
                Console.WriteLine("Sent luggage message for CorrelationId " + correlationId);
            }

            _luggageDocuments.Remove(correlationId);

            Console.WriteLine("Press any key to continue with the next message.");
            Console.ReadKey();
        }
        internal void Run()
        {
            var canonicalFlight  = "CanonicalFlight";
            var canonicalChannel = ChannelFactory.CreateDirectChannel(canonicalFlight);

            var consumer = new EventingBasicConsumer(canonicalChannel);

            consumer.Received += (ch, ea) =>
            {
                Console.WriteLine(Encoding.ASCII.GetString(ea.Body));
                canonicalChannel.BasicAck(ea.DeliveryTag, false);
            };
            var consumerTag = canonicalChannel.BasicConsume(canonicalFlight + "Queue", false, consumer);
        }
Example #6
0
        internal void Run()
        {
            string luggageChannelName = "Luggage";
            var    luggageChannel     = ChannelFactory.CreateDirectChannel(luggageChannelName);

            var consumer = new EventingBasicConsumer(luggageChannel);

            consumer.Received += (ch, ea) =>
            {
                handleLuggageMeassage(ea.Body.ToXDocument());
                luggageChannel.BasicAck(ea.DeliveryTag, false);
            };
            var consumerTag = luggageChannel.BasicConsume(luggageChannelName + "Queue", false, consumer);
        }
Example #7
0
        internal void Run()
        {
            var    channelNameCPR = "CPR";
            IModel channel        = ChannelFactory.CreateDirectChannel(channelNameCPR);
            var    consumer       = new EventingBasicConsumer(channel);

            consumer.Received += (ch, ea) =>
            {
                var cprModel = JsonSerializer.Deserialize <CprModel>(ea.Body);
                SaveModelToDbForDataEnrichmentBeforeImport(cprModel);
                Console.WriteLine("Message saved to database.");
                channel.BasicAck(ea.DeliveryTag, false);
            };
            string consumerTag = channel.BasicConsume(channelNameCPR + "Queue", false, consumer);
        }
Example #8
0
        internal void Run()
        {
            string sequencedChannelName = "SequencedCheckIn";
            var    sequencedChannel     = ChannelFactory.CreateDirectChannel(sequencedChannelName);

            var consumer = new EventingBasicConsumer(sequencedChannel);

            consumer.Received += (ch, ea) =>
            {
                var document = ea.Body.ToXDocument();
                AddDocumentToCorrectCollectiono(document);
                PrintAndRemoveDocumentFromMemoryIfComplete(document);
                sequencedChannel.BasicAck(ea.DeliveryTag, false);
            };
            var consumerTag = sequencedChannel.BasicConsume(sequencedChannelName + "Queue", false, consumer);
        }
        internal void Run()
        {
            string checkinout = "CheckInOut";
            var    channel    = ChannelFactory.CreateDirectChannel(checkinout);

            XDocument CheckInFile = XDocument.Load(@"CheckedInPassenger.xml");
            var       bytes       = CheckInFile.ToByteArray();

            while (true)
            {
                channel.BasicPublish(checkinout + "Exchange", checkinout + "RoutingKey", null, bytes);
                Console.WriteLine("Message sent on the channel CheckInOut.");
                Console.WriteLine("Press any key to continue with the next message.");
                Console.ReadKey();
            }
        }
Example #10
0
        internal void Run()
        {
            string checkinout = "CheckInOut";
            IModel channel    = ChannelFactory.CreateDirectChannel(checkinout);

            var consumer = new EventingBasicConsumer(channel);

            consumer.Received += (ch, ea) =>
            {
                //Preparing documents
                var checkInXDocument     = ea.Body.ToXDocument();
                var checkInCorrelationId = Guid.NewGuid();
                var personXDocument      = SplitPassengerFromCheckIn(checkInXDocument, checkInCorrelationId);
                var luggageXDocuments    = SplitLuggageFromCheckIn(checkInXDocument, checkInCorrelationId);

                //Setting up channel
                string combinedChannelName = "Luggage";
                var    strings             = new string[] { "Luggage", "Passenger" };
                var    combinedChannel     = ChannelFactory.CreateDirectChannel(combinedChannelName, null, strings);
                combinedChannel.TxSelect();

                //Publishing
                combinedChannel.BasicPublish("Passenger" + "Exchange", combinedChannelName + "RoutingKey", null, personXDocument.ToByteArray());
                Console.WriteLine("Passenger message sent with CorrelationId: " + checkInCorrelationId);

                //Simulate exception after part of the messages have been sent.
                //throw new Exception();

                foreach (var luggageXDocument in luggageXDocuments)
                {
                    combinedChannel.BasicPublish("Luggage" + "Exchange", combinedChannelName + "RoutingKey", null, luggageXDocument.ToByteArray());
                    Console.WriteLine("Luggage message sent with CorrelationId: " + checkInCorrelationId);
                }

                //Simulate exception after all messages have been sent.
                //throw new Exception();
                combinedChannel.TxCommit();
                channel.BasicAck(ea.DeliveryTag, false);

                Console.WriteLine("Press any key to continue with the next message.");
                Console.WriteLine();
                Console.ReadKey();
            };

            string consumerTag = channel.BasicConsume(checkinout + "Queue", false, consumer);
        }
Example #11
0
        public void Run()
        {
            var    channelNameEU  = "EUCCIDtoCPR";
            var    channelNameCPR = "CPR";
            IModel channel        = ChannelFactory.CreateDirectChannel(channelNameEU);
            var    consumer       = new EventingBasicConsumer(channel);

            consumer.Received += (ch, ea) =>
            {
                var euccidmodel = JsonSerializer.Deserialize <CanonicalDataModel.EuCcidModel>(ea.Body);
                var json        = JsonSerializer.Serialize(TranslateToCpr(euccidmodel));
                ChannelFactory.SendMessageOnChannel(channelNameCPR, Encoding.ASCII.GetBytes(json));
                Console.WriteLine("Message translated and passed on.");
                channel.BasicAck(ea.DeliveryTag, false);
            };
            string consumerTag = channel.BasicConsume(channelNameEU + "Queue", false, consumer);
        }
Example #12
0
        internal void Setup()
        {
            var airlineCompanies = "AirlineCompanies";
            var abstractChannel  = ChannelFactory.CreateDirectChannel(airlineCompanies, RoutingKey());
            var consumer         = new EventingBasicConsumer(abstractChannel);

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

                var canonicalFlight  = "CanonicalFlight";
                var canonicalChannel = ChannelFactory.CreateDirectChannel(canonicalFlight);

                JsonSerializerOptions options = new JsonSerializerOptions {
                    WriteIndented = true
                };
                canonicalChannel.BasicPublish(canonicalFlight + "Exchange", canonicalFlight + "RoutingKey", null, Encoding.ASCII.GetBytes(JsonSerializer.Serialize(Translate(sasObject), options)));

                abstractChannel.BasicAck(ea.DeliveryTag, false);
                Console.WriteLine("Message from " + RoutingKey() + " route translated and passed on.");
            };
            var consumerTag = abstractChannel.BasicConsume(airlineCompanies + "Queue", false, consumer);
        }
Example #13
0
        internal void Run()
        {
            string checkinout = "CheckInOut";
            IModel channel    = ChannelFactory.CreateDirectChannel(checkinout);

            var consumer = new EventingBasicConsumer(channel);

            consumer.Received += (ch, ea) =>
            {
                var checkInXDocument = ea.Body.ToXDocument();

                var checkInCorrelationId = Guid.NewGuid();

                var    personXDocument  = SplitPassengerFromCheckIn(checkInXDocument, checkInCorrelationId);
                string sequencedCheckIn = "SequencedCheckIn";
                var    passengerChannel = ChannelFactory.CreateDirectChannel(sequencedCheckIn);
                passengerChannel.BasicPublish(sequencedCheckIn + "Exchange", sequencedCheckIn + "RoutingKey", null, personXDocument.ToByteArray());
                Console.WriteLine("Passenger message sent with CorrelationId: " + checkInCorrelationId);

                var    luggageXDocuments  = SplitLuggageFromCheckIn(checkInXDocument, checkInCorrelationId);
                string luggageChannelName = "Luggage";
                var    luggageChannel     = ChannelFactory.CreateDirectChannel(luggageChannelName);

                foreach (var luggageXDocument in luggageXDocuments)
                {
                    luggageChannel.BasicPublish(luggageChannelName + "Exchange", luggageChannelName + "RoutingKey", null, luggageXDocument.ToByteArray());
                    Console.WriteLine("Luggage message sent with CorrelationId: " + checkInCorrelationId);
                }

                channel.BasicAck(ea.DeliveryTag, false);
                Console.WriteLine("Press any key to continue with the next message.");
                Console.WriteLine();
                Console.ReadKey();
            };

            string consumerTag = channel.BasicConsume(checkinout + "Queue", false, consumer);
        }