public void orderProcessing(OrderObject decodedOrder) //Order Processing thread { String agent = decodedOrder.getSenderId(); int n = (int)Char.GetNumericValue(agent[agent.Length - 1]); if (decodedOrder.getCardNo() < 2000 && decodedOrder.getCardNo() > 3000) //Checks card information { String failedBooking = "Booking failed!! Details: Processed for " + decodedOrder.getNumberRooms() //booking failed message + " rooms at $" + decodedOrder.getPrice() + " per room for " + decodedOrder.getSenderId() + " by " + decodedOrder.getReceiverId(); cBuffer.Put(failedBooking, n - 1); //Place failed order in the order confirmation buffer return; } double tax = 0.08; //tax double finalPrice = decodedOrder.getNumberRooms() * decodedOrder.getPrice(); //final price finalPrice += finalPrice * tax; finalPrice += this.locationCharge; //adding location charges TimeSpan timeSpan = System.DateTime.Now - decodedOrder.getBookingTimeStamp(); String confirmedBooking = "Booking confirmed at " + System.DateTime.Now //Booking confirmed message + " in " + timeSpan + " seconds!! Details: Processed for " + decodedOrder.getNumberRooms() + " rooms at $" + decodedOrder.getPrice() + " per room for " + decodedOrder.getSenderId() + " by " + decodedOrder.getReceiverId() + " at total cost $" + finalPrice + " including Location Charge $" + this.locationCharge; cBuffer.Put(confirmedBooking, n - 1); //Place confirmed booking in the confirmation buffer }
public void bookHotel(String hotel, String agent, Int32 price) // Book Hotel by sending the order information to multi cell buffer { //attempt booking OrderObject oo = new OrderObject(); oo.setSenderId(agent); oo.setCardNo(rand.Next(2000, 3000)); oo.setNumberRooms(rand.Next(10, 50)); oo.setReceiverId(hotel); oo.setPrice(price); oo.setBookingTimeStamp(System.DateTime.Now); String encodedOrder = Encoder.Encrypt(oo, "ABCDEFGHIJKLMNOP"); Console.WriteLine("{0} will attempt to book {1} having price {2} at: {3}" , agent, hotel, price, System.DateTime.Now); mCellBuffer.setOneCell(encodedOrder, oo.getReceiverId()); }