public int GetTotalDeRegistros(Pesquisa pesquisa)
        {
            string[] camposPesquisa = { "Id", "Codigo", "Descricao", "AmparoLegal", "GrupoId", "NaturezaId" };

            if (Array.IndexOf(camposPesquisa, pesquisa.Campo) == -1)
            {
                pesquisa.Campo = "Id";
            }

            return(_context.Infracao
                   .Where(InfracaoExpressao.SetWhere(pesquisa.Campo, pesquisa.Filtro))
                   .Count());
        }
        public IEnumerable <InfracaoModel> GetAll(Pesquisa pesquisa)
        {
            string[] camposPesquisa = { "Id", "Codigo", "Descricao", "AmparoLegal", "GrupoId", "NaturezaId" };

            if (Array.IndexOf(camposPesquisa, pesquisa.Campo) == -1)
            {
                pesquisa.Campo = "Id";
            }

            return((IEnumerable <InfracaoModel>)_context.Infracao
                   .Include(g => g.Grupo)
                   .Include(n => n.Natureza)
                   .Where(InfracaoExpressao.SetWhere(pesquisa.Campo, pesquisa.Filtro))
                   .AsNoTracking()
                   .Skip((pesquisa.Qtd * pesquisa.Pagina))
                   .Take(pesquisa.Qtd)
                   .OrderByDynamic(pesquisa.Campo, pesquisa.Ordem)
                   .ToList());
        }