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); }
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); }
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); }
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); }
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); }
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); }
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(); } }
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); }
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); }
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); }
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); }