public static string getEncodedValue(OrderClass OrderClass) { // Create the concatenated string i.e. encoded string string encodedString = OrderClass.getCreditCardNumber() + "#" + OrderClass.getRoomPrice() + "#" + OrderClass.getNumberOfRooms() + "#" + OrderClass.getSenderID() + "#" + OrderClass.getReceiverID(); return encodedString ; }
public static void orderProcessing(OrderClass order, int price, String timeStamp) { string decryptedCreditCard = HotelSupplier.client.Decrypt(order.getCreditCardNumber().ToString()); if (TransactionAgency.checkForValidity(decryptedCreditCard)) { if (bStatus != null) bStatus(true, order, timeStamp); return; } else Console.WriteLine("Card is not valid"); bStatus(false, order, timeStamp); return; }
// Function to check buffer repeatedly for entries public void hotelFunction() { do { Monitor.Enter(MainSystem.mcb); try { for (int i = 0; i < 2; i++) // Check all 2 entries { string encodedString = MainSystem.mcb.getOneCell(i, hotelID); string[] stringTokens = null; if(encodedString != null) stringTokens = encodedString.Split('?'); if (stringTokens != null && stringTokens[0] != null) // If entry found { orderObject = EncoderDecoder.getDecodedValue(stringTokens[0]); orderObject.setCreditCardNumber((client.Encrypt(orderObject.getCreditCardNumber().ToString()))); var t = new Thread(() => orderProcessing(orderObject, orderObject.getRoomPrice(), stringTokens[1])); // Start processing order Console.WriteLine("\n======================================================================"); Console.WriteLine("Order Received for the Hotel :"+ orderObject.getReceiverID()); Console.WriteLine("TravelAgency:{0}, RoomPrice:{1}, NumberOfRooms:{2}", orderObject.getSenderID(), orderObject.getRoomPrice(), orderObject.getNumberOfRooms()); Console.WriteLine("======================================================================"); t.Start(); t.Join(); } } } finally { Monitor.Exit(MainSystem.mcb); } Thread.Sleep(1000); } while (iterations != 100); }