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