/// <summary> /// Obtém uma entrega pelo ID /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public override bool Obter(RequisicaoObterDto requisicaoDto, ref RetornoObterDto <PedidoEntregaDto> retornoDto) { if (!base.Obter(requisicaoDto, ref retornoDto)) { return(false); } string mensagemErro = ""; PedidoEntregaVo pedidoEntregaVo; if (!ObterPorIdBd(requisicaoDto.Id, out pedidoEntregaVo, ref mensagemErro)) { retornoDto.Mensagem = "Erro ao obter a entrega: " + mensagemErro; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterPedidoEntrega, requisicaoDto.Id, retornoDto.Mensagem); return(false); } // Converter para DTO PedidoEntregaDto pedidoEntregaDto = new PedidoEntregaDto(); if (!ConverterVoParaDto(pedidoEntregaVo, ref pedidoEntregaDto, ref mensagemErro)) { retornoDto.Mensagem = "Erro ao converter a entrega: " + mensagemErro; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterPedidoEntrega, requisicaoDto.Id, retornoDto.Mensagem); return(false); } // Obter o endereço de entrega ClienteEnderecoBll clienteEnderecoBll = new ClienteEnderecoBll(pizzaByteContexto, false); requisicaoDto.Id = pedidoEntregaDto.IdEndereco; RetornoObterDto <ClienteEnderecoDto> retornoEnderecoDto = new RetornoObterDto <ClienteEnderecoDto>(); if (!clienteEnderecoBll.Obter(requisicaoDto, ref retornoEnderecoDto)) { retornoDto.Mensagem = "Erro ao obter o endereço: " + retornoEnderecoDto.Mensagem; retornoDto.Retorno = false; } pedidoEntregaDto.ClienteEndereco = retornoEnderecoDto.Entidade; retornoDto.Entidade = pedidoEntregaDto; retornoDto.Retorno = true; retornoDto.Mensagem = "Ok"; return(true); }
/// <summary> /// Obtem uma entrega por ID do pedido /// </summary> /// <param name="requisicaoDto"></param> /// <param name="entregaDto"></param> /// <param name="mensagemErro"></param> /// <returns></returns> internal bool ObterEntregaPorIdPedido(RequisicaoObterDto requisicaoDto, ref PedidoEntregaDto entregaDto, ref string mensagemErro) { if (requisicaoDto.Id == Guid.Empty || requisicaoDto.Id == null) { mensagemErro = "Preencha o id do pedido para obter a sua entrega."; return(false); } // Obter a query primária IQueryable <PedidoEntregaVo> query; if (!this.ObterQueryBd(out query, ref mensagemErro)) { mensagemErro = $"Houve um problema ao obter a entrega: {mensagemErro}"; return(false); } PedidoEntregaVo entregaVo = query.Where(p => p.IdPedido == requisicaoDto.Id).FirstOrDefault(); if (entregaVo != null) { if (!ConverterVoParaDto(entregaVo, ref entregaDto, ref mensagemErro)) { return(false); } // Obter o endereço RetornoObterDto <ClienteEnderecoDto> retornoDto = new RetornoObterDto <ClienteEnderecoDto>(); ClienteEnderecoBll clienteEnderecoBll = new ClienteEnderecoBll(pizzaByteContexto, false); requisicaoDto.Id = entregaDto.IdEndereco; if (!clienteEnderecoBll.Obter(requisicaoDto, ref retornoDto)) { mensagemErro = retornoDto.Mensagem; return(false); } entregaDto.ClienteEndereco = retornoDto.Entidade; return(true); } else { mensagemErro = "Entrega não encontrada"; return(false); } }