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