Пример #1
0
        public string ServeCustomer(StockController controller)
        {
            Thread.Sleep(Rnd.NextInt(5));
            TShirt shirt = TShirtProvider.SelectRandomShirt();
            string code  = shirt.Code;

            bool custSells = Rnd.TrueWithProb(1.0 / 6.0);

            if (custSells)
            {
                int quantity = Rnd.NextInt(9) + 1;
                controller.BuyShirts(code, quantity);
                return($"Bought {quantity} of {shirt}");
            }
            else
            {
                bool success = controller.TrySellShirt(code);
                if (success)
                {
                    return($"Sold {shirt}");
                }
                else
                {
                    return($"Couldn't sell {shirt}: Out of stock");
                }
            }
        }
Пример #2
0
        public void Work(TimeSpan workDay, StockController controller)
        {
            Console.WriteLine($"{Name} starting work");
            DateTime start = DateTime.Now;

            while (DateTime.Now - start < workDay)
            {
                ServeCustomer(controller);
            }
            Console.WriteLine($"{Name} signing off");
        }
Пример #3
0
        static void Main(string[] args)
        {
            StockController controller = new StockController();

            TimeSpan workDay = new TimeSpan(0, 0, 0, 0, 500);
            Task     task1   = Task.Run(() => new SalesPerson("Kim").Work(workDay, controller));
            Task     task2   = Task.Run(() => new SalesPerson("Tim").Work(workDay, controller));

            Task.WaitAll(task1, task2);

            controller.DisplayStatus();
        }
Пример #4
0
        static void Main()
        {
            StockController controller = new StockController();
            TimeSpan workDay = new TimeSpan(0, 0, 2);

            Task t1 = Task.Run(() => new SalesPerson("Sahil").Work(controller, workDay));
            Task t2 = Task.Run(() => new SalesPerson("Peter").Work(controller, workDay));
            Task t3 = Task.Run(() => new SalesPerson("Juliette").Work(controller, workDay));
            Task t4 = Task.Run(() => new SalesPerson("Xavier").Work(controller, workDay));

            Task.WaitAll(t1, t2, t3, t4);
            controller.DisplayStatus();
        }
Пример #5
0
        public void Work(TimeSpan workDay, StockController controller)
        {
            DateTime start = DateTime.Now;

            while (DateTime.Now - start < workDay)
            {
                string msg = ServeCustomer(controller);
                if (msg != null)
                {
                    Console.WriteLine($"{Name}: {msg}");
                }
            }
        }
Пример #6
0
        static void Main(string[] args)
        {
            StockController controller = new StockController();
            TimeSpan        workDay    = new TimeSpan(0, 0, 2);

            Task t1 = Task.Run(() => new SalesPerson("Sahil").Work(controller, workDay));
            Task t2 = Task.Run(() => new SalesPerson("Peter").Work(controller, workDay));
            Task t3 = Task.Run(() => new SalesPerson("Juliette").Work(controller, workDay));
            Task t4 = Task.Run(() => new SalesPerson("Xavier").Work(controller, workDay));

            Task.WaitAll(t1, t2, t3, t4);
            controller.DisplayStatus();
        }
Пример #7
0
        static void Main(string[] args)
        {
            StockController controller = new StockController();
            TimeSpan        workDay    = new TimeSpan(0, 0, 0, 0, 500);

            Task task1 = Task.Run(() => new SalesPerson("Tim").Work(workDay, controller));
            Task task2 = Task.Run(() => new SalesPerson("Koffi").Work(workDay, controller));
            Task task3 = Task.Run(() => new SalesPerson("Julie").Work(workDay, controller));
            Task task4 = Task.Run(() => new SalesPerson("Michael").Work(workDay, controller));

            Task.WaitAll(task1, task2, task3, task4);

            controller.DisplayStock();
        }
Пример #8
0
        static void Main(string[] args)
        {
            StockController controller = new StockController();
            TimeSpan        workDay    = new TimeSpan(0, 0, 0, 0, 500);

            controller.DisplayStock();

            Task t1 = Task.Run(() => new SalesPerson("Amiel").Work(workDay, controller));
            Task t2 = Task.Run(() => new SalesPerson("Talya").Work(workDay, controller));
            Task t3 = Task.Run(() => new SalesPerson("David").Work(workDay, controller));

            Task.WaitAll(t1, t2, t3);

            controller.DisplayStock();

            Console.ReadKey();
        }
Пример #9
0
        public void ServeCustomer(StockController controller)
        {
//			Thread.Sleep(Rnd.NextInt(100));
            string code = TShirtProvider.SelectRandomShirt().Code;

            bool buy = Rnd.TrueWithProb(0.1);

            if (buy)
            {
                int quantity = Rnd.NextInt(17) + 1;
                controller.BuyStock(code, quantity);
                DisplayPurchase(code, quantity);
            }
            else
            {
                bool success = controller.TrySellItem(code);
                DisplaySaleAttempt(success, code);
            }
        }
Пример #10
0
 public void Work(StockController stockController, TimeSpan workDay)
 {
     Random rand = new Random(Name.GetHashCode());
     DateTime start = DateTime.Now;
     while (DateTime.Now - start < workDay)
     {
         // Thread.Sleep(rand.Next(100));
         bool buy = (rand.Next(6) == 0);
         string itemName = Program.AllShirtNames[rand.Next(Program.AllShirtNames.Count)];
         if (buy)
         {
             int quantity = rand.Next(9) + 1;
             stockController.BuyStock(itemName, quantity);
             DisplayPurchase(itemName, quantity);
         }
         else
         {
             bool success = stockController.TrySellItem2(itemName);
             DisplaySaleAttempt(success, itemName);
         }
     }
     Console.WriteLine("SalesPerson {0} signing off", this.Name);
 }
Пример #11
0
        public void Work(StockController stockController, TimeSpan workDay)
        {
            Random   rand  = new Random(Name.GetHashCode());
            DateTime start = DateTime.Now;

            while (DateTime.Now - start < workDay)
            {
                Thread.Sleep(rand.Next(100));
                bool   buy      = (rand.Next(6) == 0);
                string itemName = Program.AllShirtNames[rand.Next(Program.AllShirtNames.Count)];
                if (buy)
                {
                    int quantity = rand.Next(9) + 1;
                    stockController.BuyStock(itemName, quantity);
                    DisplayPurchase(itemName, quantity);
                }
                else
                {
                    bool success = stockController.TrySellItem(itemName);
                    DisplaySaleAttempt(success, itemName);
                }
            }
            Console.WriteLine("SalesPerson {0} signing off", this.Name);
        }