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"); } } }
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"); }
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(); }
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(); }
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}"); } } }
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(); }
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(); }
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(); }
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); } }
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); }
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); }