private static void handleWebServiceBank(LoanRequest loanRequest)
 {
     WebServiceBank.WebServiceBank webBank = new WebServiceBank.WebServiceBank();
     decimal msg = webBank.ProcessLoanRequest(loanRequest.SSN, loanRequest.CreditScore, loanRequest.Amount, loanRequest.Duration);
     //TODO: Send loanrequest info aswell as decimal msg
     //HandleMessaging.SendMessage<decimal>(Queues.WEBSERVICEBANK_OUT, msg);
     LoanResponse loanResponse = new LoanResponse()
     {
         SSN = loanRequest.SSN,
         BankName = "Our Web Bank",
         InterestRate = msg
     };
     HandleMessaging.SendMessage<LoanResponse>(Queues.NORMALIZER_OUT, loanResponse);
 }
        public static void Main(string[] args)
        {
            Console.Title = "RabbitMQJSONBankNormalizer";
            Console.SetWindowSize(80, 5);
            Console.WriteLine("Listening on queue: " + Queues.RABBITMQJSONBANK_OUT);

            HandleMessaging.RecieveMessage(Queues.RABBITMQJSONBANK_OUT, (object model, BasicDeliverEventArgs ea) =>
            {
                Console.WriteLine("<--Message recieved on queue: " + Queues.RABBITMQJSONBANK_OUT);

                LoanResponse loanResponse;
                JsonBankResponse bankResponse;

                string msg = Encoding.UTF8.GetString(ea.Body);

                try
                {
                    bankResponse = JsonConvert.DeserializeObject<JsonBankResponse>(msg);
                    loanResponse = new LoanResponse()
                    {
                        InterestRate = bankResponse.InterestRate,
                        SSN = bankResponse.SSN,
                        BankName = ea.RoutingKey.Split('_')[1] // Gets the bank name from the queue name
                    };

                Console.WriteLine("<--Sending message on queue: " + Queues.NORMALIZER_OUT);
                Console.WriteLine();
                HandleMessaging.SendMessage<LoanResponse>(Queues.NORMALIZER_OUT, loanResponse);
                }
                catch (Exception ex)
                {
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.WriteLine(ex.Message);
                    Console.BackgroundColor = ConsoleColor.Black;
                /*
                   String format from pdf:
                   string msg = "{\"ssn\":" + loanRequest.SSN + ",\"creditScore\":" + loanRequest.CreditScore.ToString() +
                       ",\"loanAmount\":" + loanRequest.Amount.ToString() + ",\"loanDuration\":" + loanRequest.Duration +" }";

                   but getting this from the bank:

                   Exception: Something went wrong.Data should be sent like: { "ssn":1605789787,"loanAmount":10.0,"loanDuration":360,"rki":false}
                   Can not instantiate value of type[simple type, class dk.cphbusiness.si.banktemplate.JsonDTO.BankLoanDTO] from JSON String; no single-String constructor/factory method

                    Gonna send the pdf version, and just catch the exception here...
                */
            }
            });
        }
        public static void Main(string[] args)
        {
            Console.Title = "RabbitMQXMLBankNormalizer";
            Console.SetWindowSize(80, 5);
            HandleMessaging.RecieveMessage(Queues.RABBITMQXMLBANK_OUT, (object model, BasicDeliverEventArgs ea) =>
            {
                Console.WriteLine("<--Message recieved on queue: " + Queues.RABBITMQXMLBANK_OUT);
                try
                {
                    LoanResponse loanResponse;
                    XMLBankResponse bankResponse;
                    System.Xml.Serialization.XmlSerializer serializer;

                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(XMLBankResponse));

                    using (TextReader reader = new StringReader(Encoding.UTF8.GetString(ea.Body)))
                    {
                        bankResponse = serializer.Deserialize(reader) as XMLBankResponse;

                        loanResponse = new LoanResponse()
                        {
                            InterestRate = bankResponse.InterestRate,
                            SSN = bankResponse.SSN,
                            BankName = ea.RoutingKey.Split('_')[1] // Gets the bank name from the queue name
                        };
                    }

                    Console.WriteLine("<--Sending message on queue: " + Queues.NORMALIZER_OUT);
                    Console.WriteLine();
                    HandleMessaging.SendMessage<LoanResponse>(Queues.NORMALIZER_OUT, loanResponse);
                }
                catch (Exception ex)
                {
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.WriteLine(ex.Message);
                    Console.BackgroundColor = ConsoleColor.Black;
                }
            });
        }