public ActionResult <List <Cidadao> > GetAllPagination([FromHeader] string ibge, int page, int pagesize, string search, string fields, string datanasc, string situacoes) { try { ibge = _config.GetConnectionString(Connection.GetConnection(ibge)); string filtro = string.Empty; if (situacoes != null && situacoes.Split(",").Length > 0 && situacoes.Split(",")[0] != null) { foreach (var item in situacoes.Split(",")) { if (!string.IsNullOrWhiteSpace(filtro)) { filtro += " OR "; } else { filtro += " ( "; } filtro += $" C.CSI_SITUACAO LIKE '%{item}%'"; } } if (!string.IsNullOrWhiteSpace(filtro)) { filtro += " ) "; } if (!string.IsNullOrWhiteSpace(datanasc) && !string.IsNullOrWhiteSpace(filtro)) { filtro += $" AND C.CSI_DTNASC = '{Convert.ToDateTime(datanasc).ToString("dd/MM/yyyy")}'"; } else if (!string.IsNullOrWhiteSpace(datanasc) && string.IsNullOrWhiteSpace(filtro)) { filtro += $" C.CSI_DTNASC = '{Convert.ToDateTime(datanasc).ToString("dd/MM/yyyy")}'"; } if (!string.IsNullOrWhiteSpace(search)) { if (fields != null && fields.Split(",").Length > 0 && fields.Split(",")[0] != null) { if (string.IsNullOrWhiteSpace(filtro)) { filtro += Helper.GetFiltroInicial(fields, search); } else { filtro += Helper.GetFiltro(fields, search); } } else { var stringcod = string.Empty; if (Helper.soContemNumeros(search)) { stringcod = $" c.csi_codpac = {search} OR "; } if (!string.IsNullOrWhiteSpace(filtro)) { filtro += $@" AND ( {stringcod} (SELECT UPPER(RETORNO) FROM TIRA_ACENTOS(C.CSI_NOMPAC)) LIKE '%{Helper.RemoveAcentos(search.ToUpper())}%' OR C.csi_sexpac LIKE '%{search}%' OR C.csi_ncartao LIKE '%{search}%' OR C.CSI_CPFPAC LIKE '%{search}%')"; } else { filtro += $@" ( {stringcod} (SELECT UPPER(RETORNO) FROM TIRA_ACENTOS(C.CSI_NOMPAC)) LIKE '%{Helper.RemoveAcentos(search.ToUpper())}%' OR C.csi_sexpac LIKE '%{search}%' OR C.csi_ncartao LIKE '%{search}%' OR C.CSI_CPFPAC LIKE '%{search}%')"; } } } if (!string.IsNullOrWhiteSpace(filtro)) { filtro = " WHERE " + filtro; } string sql_estrutura = string.Empty; if (_cidadaoRepository.VerificaExisteEsusFamilia(ibge)) { sql_estrutura = $@"LEFT JOIN ESUS_FAMILIA FAM ON (C.ID_FAMILIA = FAM.ID) LEFT JOIN VS_ESTABELECIMENTOS D ON D.ID = FAM.ID_DOMICILIO"; } else { sql_estrutura = $@"LEFT JOIN ESUS_CADDOMICILIAR D ON C.ID_ESUS_CADDOMICILIAR = D.ID"; } int count = _cidadaoRepository.GetCountAll(ibge, filtro); if (count == 1) { page = 0; } else { page = page * pagesize; } Response.Headers.Add("X-Total-Count", count.ToString()); List <Cidadao> lista = _cidadaoRepository.GetAllPagination(ibge, filtro, page, pagesize, sql_estrutura); return(Ok(lista)); } catch (Exception ex) { var response = TrataErro.GetResponse(ex.Message, true); return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } }