Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            ILogistica estoque = EstoqueFactory.Create(TipoEstoque.LGroup);

            estoque.BaixarEstoque(1, 1);

            ILogistica estoqueM = EstoqueFactory.Create(TipoEstoque.Magento);

            estoqueM.BaixarEstoque(2, 2);

            Console.ReadKey();
        }
        public void BaixarEstoqueComAltaDisponibilidade(int idProduto, int qtde)
        {
            Task.Run(() =>
            {
                lock (_lock)
                {
                    Console.WriteLine($"Estoque em fila");
                    _fila.Add(new KeyValuePair <int, int>(idProduto, qtde));

                    Thread.Sleep(1000);
                    _estoque.BaixarEstoque(_fila.Keys.FirstOrDefault(), _fila[_fila.Keys.FirstOrDefault()]);

                    _fila.Remove(1);

                    Console.WriteLine($"Estoque em adicionado");
                }
            });
        }