private async Task ValidarNovaEncomenda(Encomenda encomenda) { if (!await _empresaService.ExistePontoRetirada(encomenda.PontoRetiradaId)) { throw new RecebaFacilException("Ponto de Retirada inválido"); } if (!await _empresaService.ExistePontoVenda(encomenda.PontoVendaId)) { throw new RecebaFacilException("Ponto de Venda inválido"); } if (DateTime.Now.CompareTo(encomenda.DataPedido) < 0) { throw new RecebaFacilException("Data do pedido inválida"); } if (string.IsNullOrWhiteSpace(encomenda.NumeroPedido)) { throw new RecebaFacilException("Número do pedido é obrigatório"); } if (await _repositoryEncomenda.Existe(x => x.NumeroPedido == encomenda.NumeroPedido)) { throw new RecebaFacilException($"Já existe uma encomenda com este número de pedido: {encomenda.NumeroPedido}"); } }