Example #1
0
        public void StartWork(StockController stockController, TimeSpan workDay)
        {
            Random   rand  = new Random((int)DateTime.UtcNow.Ticks);
            DateTime start = DateTime.UtcNow;

            while (DateTime.UtcNow - start < workDay)
            {
                Thread.Sleep(rand.Next(50));
                int    generatedNumber = rand.Next(10);
                bool   shouldPurchase  = generatedNumber % 2 == 0;
                bool   shouldRemove    = generatedNumber == 9;
                string itemName        = RemoteBookStock.Books[rand.Next(RemoteBookStock.Books.Count)];

                if (shouldPurchase)
                {
                    int quantity = rand.Next(9) + 1;
                    stockController.BuyBook(itemName, quantity);
                    DisplayPurchase(itemName, quantity);
                }
                else if (shouldRemove)
                {
                    stockController.TryRemoveBookFromStock(itemName);
                    DisplayRemoveAttempt(itemName);
                }
                else
                {
                    bool success = stockController.TrySellBook(itemName);
                    DisplaySaleAttempt(success, itemName);
                }
            }
            Console.WriteLine("SalesManager {0} finished its work!", Name);
        }