pesquisarEstado static method
- dynamic nomeOuUFOuIBGE
Pesquisa um estado pelo nome, UF ou código IBGE.
Retorna uma lista de estados que correspondem ao critério de pesquisa. O critério de pesquisa pode ser o nome do estado, a UF (Unidade Federativa) ou o código IBGE do estado. Se a primeira busca não retornar nenhum estado, a função tenta buscar pelo nome de uma cidade.
Parâmetros:
nomeOuUFOuIBGE
: O critério de pesquisa (nome, UF ou código IBGE).
Retorna: Uma lista de objetos do tipo Estado que correspondem ao critério de pesquisa. Se nenhum estado for encontrado, retorna uma lista vazia.
Exemplo:
var estadosEncontrados = await pesquisarEstado('São Paulo');
print(estadosEncontrados);
Implementation
static Iterable<Estado> pesquisarEstado(dynamic nomeOuUFOuIBGE) {
try {
if (nomeOuUFOuIBGE is Cidade) {
return [nomeOuUFOuIBGE.estado];
}
if (nomeOuUFOuIBGE is Estado) {
return [nomeOuUFOuIBGE];
}
nomeOuUFOuIBGE = "$nomeOuUFOuIBGE".toLowerCase().trim();
var l = estados.where((e) => e.nome.flatContains(nomeOuUFOuIBGE) || e.uf.flatEqual(nomeOuUFOuIBGE) || e.ibge.toString() == nomeOuUFOuIBGE.toString().onlyNumbers.first(2));
return l.orderBy((x) {
return [
x.nome.getLevenshtein(nomeOuUFOuIBGE, false),
x.uf.getLevenshtein(nomeOuUFOuIBGE, false),
x.ibge.toString().getLevenshtein(nomeOuUFOuIBGE, false),
].min;
}).thenBy((x) => x.nome);
} catch (e) {
return [];
}
}