Example #1
0
        static void Main(string[] args)
        {
            CashDesks obj = new CashDesks();

            Console.WriteLine("Comand list \ntakebill \ntakebatch \ntotal \ninspect \nexit \n");

            while (true)
            {
                string   comands = Console.ReadLine();
                string[] comand  = comands.Split(' ');

                switch (comand[0])
                {
                case "takebill":
                    if (comand.Length > 2)
                    {
                        throw new ArgumentException("takebill takes only 1 argument");
                    }
                    else
                    {
                        obj.TakeMoney(new Bill(int.Parse(comand[1])));
                    }
                    break;

                case "takebatch":
                    if (comand.Length > 2)
                    {
                        List <Bill> bills = new List <Bill>();
                        for (int i = 1; i < comand.Length; i++)
                        {
                            bills.Add(new Bill(int.Parse(comand[i])));
                        }
                        obj.TakeMoney(new BatchBill(bills));
                        break;
                    }
                    else
                    {
                        throw new ArgumentException("takebatch must have more than 1 argument");
                    }

                case "total":
                    obj.Total();
                    break;

                case "inspect":
                    obj.Inspect();
                    break;

                case "exit":
                    Environment.Exit(0);
                    break;

                default:
                    Console.WriteLine("Wrong option!");
                    break;
                }
            }
        }
 public void Start()
 {
     tasks.Add(new Task(() => CreateCarts(10, token)));
     tasks.AddRange(CashDesks.Select(c => new Task(() => CashDeskWork(c, token))));
     foreach (var task in tasks)
     {
         task.Start();
     }
 }
Example #3
0
 public void Start()
 {
     tasks.Add(new Task(() => CreateCarts(10, token)));                             // метод в отдельном потоке
     tasks.AddRange(CashDesks.Select(c => new Task(() => CashDeskWork(c, token)))); // коллекция задач
     foreach (var task in tasks)
     {
         task.Start();
     }
 }
Example #4
0
 public void Start()
 {
     tasks.Add(new Task(() => CreateCarts(10, token)));//запуск метода в асинхронном режиме
     tasks.AddRange(CashDesks.Select(s => new Task(() => CashDeskwork(s, token))));
     foreach (var task in tasks)
     {
         task.Start();
     }
 }
        /// <summary>
        /// Стартуем модель
        /// </summary>
        public void Start()
        {
            IsWorking = true;
            Task.Run(() => CreateCards(10));
            var cashDeskTasks = CashDesks.Select(c => new Task(() => CashDeskWork(c)));

            foreach (Task task in cashDeskTasks)
            {
                task.Start();
            }
        }
Example #6
0
        public void Start()
        {
            isWorking = true;

            tasks.Add(new Task(() => CreateCarts(10, cancellation)));
            //   var cash = CashDesks.FirstOrDefault(); //TODO: where queue is min
            tasks.AddRange(CashDesks.Select(c => new Task(() => CashDeskWork(c, cancellation))));
            foreach (var task in tasks)
            {
                task.Start();
            }
        }
Example #7
0
        public void Start()
        {
            isWorking = true;
            Task.Run(() => CreateCarts(10, CustomerSpeed));

            var cashDeskTasks = CashDesks.Select(c => new Task(() => CashDeskWork(c, CashDeskSpeed)));

            foreach (var task in cashDeskTasks)
            {
                task.Start();
            }
        }
Example #8
0
        public void Start()
        {
            isWorking = true;
            Task.Run(() => CreateCarts(10, CustomersSpeed));//Запустили в отдельном потоке


            var cashDesckTasks = CashDesks.Select(c => new Task(() => CashDeskWork(c, CashDeskSpeed)));//Сделали коллекцию задач

            foreach (var task in cashDesckTasks)
            {
                task.Start(); //Запускаем задачи в отдельных потоках
            }
        }
Example #9
0
        public void Start()
        {
            isWorking = true;

            tasks.Add(new Task(() => CreateCarts(10)));
            tasks.AddRange(CashDesks.Select(cashDesk => new Task(()
                                                                 => CashDeskWork(cashDesk))));

            foreach (var task in tasks)
            {
                task.Start();
            }
        }
Example #10
0
        /// <summary>
        /// Запуск компьютерной модели
        /// </summary>
        public void Start()
        {
            isWorking = true;
            // Запускает создание корзин
            Task.Run(() => CreateCarts(10, 10));

            var cashDesksTasks = CashDesks.Select(c =>
                                                  new Task(() => CashDeskWork(c, 1000)));

            foreach (var task in cashDesksTasks)
            {
                task.Start();
            }
        }
Example #11
0
        public ShopComputerModel()
        {
            var sellers = Generator.GetNewSeller(20);

            Generator.GetNewProduct(1000);
            foreach (var seller in sellers)
            {
                Sellers.Enqueue(seller);
            }
            for (int i = 0; i < 3; i++)
            {
                CashDesks.Add(new CashDesk(CashDesks.Count, Sellers.Dequeue()));
            }
        }
Example #12
0
        //генерирование и обработка классов
        public void Start()
        {
            isWorking = true;//запустили метод CreateCarts в отдельном потоке на выполнение
            //метод будет работать до тех пор пока мы его самостоятельно не остановим



            tasks.Add(new Task(() => CreateCarts(10, token)));
            //для каждого потока отдельно запускаем выполнение метода CashDeskWork
            //создание коллекции задач,внутри каждой задачи находится касса которая бесконечно работает в своем собственном потоке
            tasks.AddRange(CashDesks.Select(c => new Task(() => CashDeskWork(c, token))));
            foreach (var task in tasks)
            {
                task.Start();
            }
        }
Example #13
0
        public ShopComputerModel()
        {
            List <Seller> sellers = Generator.GetNewSellers(20);

            Generator.GetNewProducts(1000);
            Generator.GetNewCustomers(100);

            foreach (Seller seller in sellers)
            {
                Sellers.Enqueue(seller);
            }

            for (int i = 0; i < 3; i++)
            {
                CashDesks.Add(new CashDesk(CashDesks.Count, Sellers.Dequeue(), null));
            }
        }
Example #14
0
        public ShopComputerModel()
        {
            var freeSellers = Generator.GetSellers(20);

            cancellationTokenSource = new CancellationTokenSource();
            token = cancellationTokenSource.Token;
            Generator.GetProducts(1000);
            Generator.GetCustomers(100);
            foreach (var seller in freeSellers)
            {
                Sellers.Enqueue(seller);
            }

            for (int i = 0; i < 3; i++)
            {
                CashDesks.Add(new CashDesk(CashDesks.Count, Sellers.Dequeue(), null));
            }
        }
Example #15
0
        public ShopComputerModel()
        {
            var sellers = Generator.GetNewSellers(20);

            Generator.GetNewProducts(1000);
            Generator.GetNewCustomers(100);

            cancelTokenSource = new CancellationTokenSource();
            token             = cancelTokenSource.Token;

            foreach (var seller in sellers)
            {
                Sellers.Enqueue(seller); //очередь касиров (чтобы брать свободных)
            }

            for (int i = 0; i < 3; i++)
            {
                CashDesks.Add(new CashDesk(CashDesks.Count, Sellers.Dequeue(), null)); //создаем кассы
            }
        }
Example #16
0
        private void frmCashdesksEdit_Load(object sender, EventArgs e)
        {
            if (_CashId == null)
            {
                cd = _db.CashDesks.Add(new CashDesks
                {
                    Deleted = 0,
                    Def     = _db.CashDesks.Any(a => a.Def == 1) ? 0 : 1,
                    Name    = ""
                });

                Text = "Додати нову касу:";
            }
            else
            {
                cd = _db.CashDesks.Find(_CashId);

                Text = "Властвості каси:";
            }

            CashDesksBS.DataSource = cd;

            DefCheckBox.Enabled = !DefCheckBox.Checked;
        }