コード例 #1
0
        public IEnumerable <Sincronizar> ImportarProdutosAtualizados()
        {
            ICollection <Sincronizar> listaSincronizar = null;

            try
            {
                listaSincronizar = _sincronizarAgent.SincronizarProdutos();
            }
            catch (Exception)
            {
            }

            if (listaSincronizar == null)
            {
                throw new BoException("Erro de comunicação com o servidor");
            }
            if (listaSincronizar.Count == 0)
            {
                throw new BoException("Nem um produto emcontrado");
            }

            var ordensCadastradas = new ProdutoBo(_Context).ListarOrdens();

            return(listaSincronizar
                   .Where(sincronizar => ordensCadastradas.Contains(sincronizar.Ordem.ToString())));
        }
コード例 #2
0
        public override void Add(Pedido pedido)
        {
            if (pedido.Cliente == null)
            {
                throw new BoException("Cliente inválido");
            }
            if (pedido.ItemsPedido == null)
            {
                throw new BoException("Items inválidos");
            }
            if (pedido.ValorTotal == 0)
            {
                throw new BoException("Valor inválido");
            }
            if (pedido.Status == 0)
            {
                throw new BoException("Status inválido");
            }
            if (pedido.FormaPagamento == 0)
            {
                throw new BoException("Forma de pagamento inválida");
            }

            if (!new ProdutoBo(_Context).SincronizarPorPedido(pedido))
            {
                throw new BoException("Falha na comunicação com o servidor. Tente novamente mais tarde");
            }

            var produtobo = new ProdutoBo(_Context);


            if (pedido.ItemsPedido
                .Any(itemPedido =>
                     produtobo.GetById(itemPedido.Produto.ProdutoId).EstoqueDisponivel < itemPedido.Qtde))
            {
                throw new BoException("Estoque insuficiente");
            }

            produtobo.ReservarPorPedido(pedido);
            base.Add(pedido);
        }
コード例 #3
0
        public void ImportarPorSession(string sessionId)
        {
            if (string.IsNullOrEmpty(sessionId))
            {
                throw new BoException("SessionID invalida");
            }
            ICollection <Sincronizar> listaSincronizar = null;

            try
            {
                listaSincronizar = _sincronizarAgent.SincronizarProdutos();
            }
            catch (Exception)
            {
            }


            if (listaSincronizar == null)
            {
                throw new BoException("Erro de comunicação com o servidor");
            }
            if (listaSincronizar.Count == 0)
            {
                throw new BoException("Nem um produto emcontrado");
            }

            ApagarPorSession(sessionId);

            var ordensCadastradas = new ProdutoBo(_Context).ListarOrdens();

            foreach (var sincronizar in listaSincronizar
                     .Where(sincronizar => !ordensCadastradas.Contains(sincronizar.Ordem.ToString())))
            {
                sincronizar.SessionId = sessionId;
                _sincronizarRepository.Add(sincronizar);
            }
        }