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); }
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); }
public Lockers(LockerSizeEnum lockerSize) { this.orderId = -1; //Means this locker is not being used for any customer order. Free for allocation. this.lockerSize = lockerSize; }
private static Order CreateOrder(int orderId, int customerId, LockerSizeEnum lockerSize) { return(new Order(orderId, customerId, lockerSize)); }
public Order(int orderId, int customerId, LockerSizeEnum lockerSize) { this.lockerSize = lockerSize; this.orderId = orderId; this.customerId = customerId; }