Beispiel #1
0
        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
        }
Beispiel #2
0
        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());
        }