/// <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); }
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); }
private static bool ValidadeCep(CepVo cep) { return(cep.Validar()); }