/// <summary>
        /// Obtem uma lista de endereços de cliente pelos IDs
        /// </summary>
        /// <param name="requisicaoDto"></param>
        /// <param name="retornoDto"></param>
        /// <returns></returns>
        internal bool ObterListaPorId(RequisicaoListaGuidsDto requisicaoDto, ref RetornoObterListaDto <ClienteEnderecoDto> retornoDto)
        {
            // Obter a query primária
            string mensagemErro = ""; IQueryable <ClienteEnderecoVo> query;

            if (!this.ObterQueryBd(out query, ref mensagemErro))
            {
                retornoDto.Mensagem = $"Houve um problema ao listar os endereços de clientes: {mensagemErro}";
                retornoDto.Retorno  = false;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaEnderecosClientePorId, Guid.Empty, retornoDto.Mensagem);
                return(false);
            }

            List <ClienteEnderecoVo> listaVo     = query.Where(p => requisicaoDto.ListaGuids.Contains(p.Id)).ToList();
            List <CepVo>             listaCepsVo = new List <CepVo>();

            // Obter CEPs
            CepBll cepBll = new CepBll(false);

            if (!cepBll.ObterListaEnderecosPorId(listaVo.Select(p => p.IdCep).ToList(), ref listaCepsVo, ref mensagemErro))
            {
                retornoDto.Mensagem = mensagemErro;
                retornoDto.Retorno  = false;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaEnderecosClientePorId, Guid.Empty, retornoDto.Mensagem);
                return(false);
            }

            // Converter
            foreach (var clienteEndereco in listaVo)
            {
                CepVo cepDto = listaCepsVo.Where(p => p.Id == clienteEndereco.IdCep).FirstOrDefault();
                ClienteEnderecoDto clienteEnderecoDto = new ClienteEnderecoDto();
                if (!ConverterVoParaDto(clienteEndereco, ref clienteEnderecoDto, ref mensagemErro))
                {
                    retornoDto.Mensagem = "Erro ao converter para DTO: " + mensagemErro;
                    retornoDto.Retorno  = false;

                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaEnderecosClientePorId, clienteEndereco.Id, retornoDto.Mensagem);
                    return(false);
                }

                //Preencher dados do endereço
                clienteEnderecoDto.Endereco = new CepDto()
                {
                    Bairro     = cepDto == null ? "" : cepDto.Bairro,
                    Cep        = cepDto == null ? "" : cepDto.Cep,
                    Cidade     = cepDto == null ? "" : cepDto.Cidade,
                    Logradouro = cepDto == null ? "" : cepDto.Logradouro,
                    Id         = cepDto == null ? Guid.Empty : cepDto.Id
                };

                retornoDto.ListaEntidades.Add(clienteEnderecoDto);
            }

            return(true);
        }
Exemple #2
0
 public Enderecos(string endereco, string complemento, string bairro, string cidade, CepVo cep, UfVo estado, Guid clienteId)
 {
     Endereco    = endereco;
     Complemento = complemento;
     Bairro      = bairro;
     Cidade      = cidade;
     Cep         = cep;
     Estado      = estado;
     ClienteId   = clienteId;
     Ativo       = true;
 }
        /// <summary>
        /// Obtém uma lista de clienteEnderecoes com filtros aplicados, podendo ser paginada
        /// </summary>
        /// <param name="requisicaoDto"></param>
        /// <param name="retornoDto"></param>
        /// <returns></returns>
        public override bool ObterListaFiltrada(RequisicaoObterListaDto requisicaoDto, ref RetornoObterListaDto <ClienteEnderecoDto> retornoDto)
        {
            if (!base.ObterListaFiltrada(requisicaoDto, ref retornoDto))
            {
                return(false);
            }

            // Obter a query primária
            string mensagemErro = ""; IQueryable <ClienteEnderecoVo> query;

            if (!this.ObterQueryBd(out query, ref mensagemErro))
            {
                retornoDto.Mensagem = $"Houve um problema ao listar os endereços de clientes: {mensagemErro}";
                retornoDto.Retorno  = false;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaClienteEndereco, Guid.Empty, retornoDto.Mensagem);
                return(false);
            }

            // Aplicar os filtros
            foreach (var filtro in requisicaoDto.ListaFiltros)
            {
                switch (filtro.Key)
                {
                case "IDCLIENTE":
                    Guid id;
                    if (!Guid.TryParse(filtro.Value, out id))
                    {
                        retornoDto.Mensagem = $"Falha ao converter o filtro de 'IdCliente'.";
                        retornoDto.Retorno  = false;
                        return(false);
                    }

                    query = query.Where(p => p.IdCliente == id);
                    break;

                case "IDCEP":
                    Guid idCep;
                    if (!Guid.TryParse(filtro.Value, out idCep))
                    {
                        retornoDto.Mensagem = $"Falha ao converter o filtro de 'IdCep'.";
                        retornoDto.Retorno  = false;
                        return(false);
                    }

                    query = query.Where(p => p.IdCep == idCep);
                    break;

                case "INATIVO":

                    bool filtroInativo;
                    if (!bool.TryParse(filtro.Value, out filtroInativo))
                    {
                        retornoDto.Mensagem = $"Fala ao converter o filtro de 'inativo'.";
                        retornoDto.Retorno  = false;
                        return(false);
                    }

                    query = query.Where(p => p.Inativo == filtroInativo);
                    break;

                default:
                    retornoDto.Mensagem = $"O filtro {filtro.Key} não está definido para esta pesquisa.";
                    retornoDto.Retorno  = false;

                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaClienteEndereco, Guid.Empty, retornoDto.Mensagem);
                    return(false);
                }
            }

            requisicaoDto.CampoOrdem = string.IsNullOrWhiteSpace(requisicaoDto.CampoOrdem) ? "" : requisicaoDto.CampoOrdem.ToUpper().Trim();
            switch (requisicaoDto.CampoOrdem)
            {
            case "IDCLIENTE":
                query = query.OrderBy(p => p.IdCliente).ThenBy(p => p.IdCep);
                break;

            case "IDCEP":
                query = query.OrderBy(p => p.IdCep).ThenBy(p => p.IdCliente);
                break;

            default:
                query = query.OrderBy(p => p.IdCliente).ThenBy(p => p.IdCep);
                break;
            }

            double totalItens = query.Count();

            if (totalItens == 0)
            {
                retornoDto.NumeroPaginas = 0;
                retornoDto.Mensagem      = "Nenhum resultado encontrado.";
                retornoDto.Retorno       = true;
                return(true);
            }

            double paginas = totalItens <= requisicaoDto.NumeroItensPorPagina ? 1 : totalItens / requisicaoDto.NumeroItensPorPagina;

            retornoDto.NumeroPaginas = (int)Math.Ceiling(paginas);

            int pular = (requisicaoDto.Pagina - 1) * requisicaoDto.NumeroItensPorPagina;

            query = query.Skip(pular).Take(requisicaoDto.NumeroItensPorPagina);

            List <ClienteEnderecoVo> listaVo     = query.ToList();
            List <CepVo>             listaCepsVo = new List <CepVo>();

            CepBll cepBll = new CepBll(false);

            if (!cepBll.ObterListaEnderecosPorId(listaVo.Select(p => p.IdCep).ToList(), ref listaCepsVo, ref mensagemErro))
            {
                retornoDto.Mensagem = mensagemErro;
                retornoDto.Retorno  = false;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaClienteEndereco, Guid.Empty, retornoDto.Mensagem);
                return(false);
            }

            foreach (var clienteEndereco in listaVo)
            {
                CepVo cepDto = listaCepsVo.Where(p => p.Id == clienteEndereco.IdCep).FirstOrDefault();
                ClienteEnderecoDto clienteEnderecoDto = new ClienteEnderecoDto();
                if (!ConverterVoParaDto(clienteEndereco, ref clienteEnderecoDto, ref mensagemErro))
                {
                    retornoDto.Mensagem = "Erro ao converter para DTO: " + mensagemErro;
                    retornoDto.Retorno  = false;

                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaClienteEndereco, clienteEndereco.Id, retornoDto.Mensagem);
                    return(false);
                }

                //Preencher dados do endereço
                clienteEnderecoDto.Endereco = new CepDto()
                {
                    Bairro     = cepDto == null ? "" : cepDto.Bairro,
                    Cep        = cepDto == null ? "" : cepDto.Cep,
                    Cidade     = cepDto == null ? "" : cepDto.Cidade,
                    Logradouro = cepDto == null ? "" : cepDto.Logradouro,
                    Id         = cepDto == null ? Guid.Empty : cepDto.Id
                };

                retornoDto.ListaEntidades.Add(clienteEnderecoDto);
            }

            retornoDto.Mensagem = "Ok";
            retornoDto.Retorno  = true;
            return(true);
        }
Exemple #4
0
 private static bool ValidadeCep(CepVo cep)
 {
     return(cep.Validar());
 }