示例#1
0
        public static void Main(string[] args)
        {
            InventoryController inventoryController = new InventoryController();
            Inventory           inventory           = new Inventory();

            inventory.items = new List <Item>();

            //prepopulate items
            Item item1 = new Item("xxx-000", "Dairy", DateTime.Now.AddDays(2));

            inventory.items.Add(item1);

            Item item2 = new Item("xxx-001", "Dairy", DateTime.Now.AddDays(1));

            inventory.items.Add(item2);

            Item item3 = new Item("xxx-002", "Meat", DateTime.Now.AddSeconds(12));

            inventory.items.Add(item3);

            Item item4 = new Item("xxx-003", "Fruit", DateTime.Now.AddDays(-2));

            inventory.items.Add(item4);

            //item to add
            Item itemToAdd = new Item("xxx-004", "car", DateTime.Now.AddYears(2));

            //remove item
            Notification notification1 = inventoryController.RemoveItem("xxx-000", inventory);

            Console.WriteLine(notification1.message);

            //add item
            Notification notification = inventoryController.AddItem(itemToAdd, inventory);

            Console.WriteLine(notification.message);

            //list items in inventory
            for (int i = 0; i < inventory.items.Count; i++)
            {
                Console.WriteLine(inventory.items[i].label);
            }

            //Background thread that checks for expired items in inventory every 10 seconds
            new Thread(() =>
            {
                Thread.CurrentThread.IsBackground = true;
                while (1 == 1)
                {
                    ExpirationNotification exNotificaiton = inventoryController.CheckExpiration(inventory);
                    if (exNotificaiton.messages != null)
                    {
                        foreach (string message in exNotificaiton.messages)
                        {
                            Console.WriteLine(message);
                        }
                    }
                    Thread.Sleep(10000);
                }
            }).Start();
            Console.ReadKey();
        }