Esempio n. 1
0
        public static void AddOrderToQueue(int orderId, int customerId, LockerSizeEnum lockerSize)
        {
            if (OrderProcessor.ordersQueue == null)
            {
                OrderProcessor.ordersQueue = new Queue <Order>();
            }

            var newOrder = OrderProcessor.CreateOrder(orderId, customerId, lockerSize);

            if (OrderProcessor.TryAllocateLockerToOrder(newOrder))
            {
                if (OrderProcessor.orderStatus == null)
                {
                    OrderProcessor.orderStatus = new Dictionary <Order, bool>();
                }

                OrderProcessor.orderStatus[newOrder] = true;
            }
            else
            {
                OrderProcessor.ordersQueue.Enqueue(newOrder);
            }


            OrderProcessor.customers[customerId].AddCurrentOrderToCustomerOrderIDs(orderId);
        }
Esempio n. 2
0
        public bool AssignOrderToPod(int orderId, LockerSizeEnum orderSize)
        {
            foreach (var locker in this.lockerList)
            {
                if (locker.GetOrderId == -1 && locker.GetLockerSize == orderSize)
                {
                    locker.SetOrderId(orderId);
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 3
0
 public Lockers(LockerSizeEnum lockerSize)
 {
     this.orderId    = -1; //Means this locker is not being used for any customer order. Free for allocation.
     this.lockerSize = lockerSize;
 }
Esempio n. 4
0
 private static Order CreateOrder(int orderId, int customerId, LockerSizeEnum lockerSize)
 {
     return(new Order(orderId, customerId, lockerSize));
 }
Esempio n. 5
0
 public Order(int orderId, int customerId, LockerSizeEnum lockerSize)
 {
     this.lockerSize = lockerSize;
     this.orderId    = orderId;
     this.customerId = customerId;
 }