Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }