public ActionResult <List <Logradouro> > GetAllPagination([FromHeader] string ibge, int page, int pagesize, string search, string fields) { try { ibge = _config.GetConnectionString(Connection.GetConnection(ibge)); string filtro = string.Empty; if (!string.IsNullOrWhiteSpace(search)) { if (fields != null && fields.Split(",").Length > 0 && fields.Split(",")[0] != null) { filtro += Helper.GetFiltroInicial(fields, search); } else { filtro += $@" ( LOGR.CSI_NOMEND CONTAINING '{search}' OR (BAI.CSI_NOMBAI CONTAINING '{search}') OR (CID.CSI_NOMCID CONTAINING '{search}') OR (LOGR.CSI_CEP CONTAINING '{search}') )"; } } if (!string.IsNullOrWhiteSpace(filtro)) { filtro = $" WHERE " + filtro; } int count = _Repository.GetCountAll(ibge, filtro); if (count == 1) { page = 0; } else { page = page * pagesize; } List <Logradouro> lista = _Repository.GetAllPagination(ibge, page, pagesize, filtro); Response.Headers.Add("X-Total-Count", count.ToString()); return(Ok(lista)); } catch (Exception ex) { var response = TrataErro.GetResponse(ex.Message, true); return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } }