protected void btnRemoverFiltroTodos_Click(object sender, EventArgs e)
        {
            var btnRemover = (HtmlButton)sender;

            string filtro = btnRemover.Attributes["data-filtro"];

            var manter = new BMEmailEnvio();

            if (idEmailGerado != null)
            {
                var email = manter.ObterPorID(idEmailGerado.Value);

                // Busca por id novamente para ter o objeto novamente na sessão do nhibernate

                var query = new ManterEmailEnvioPermissao().ObterTodosIQueryable().Where(x => x.EmailEnvio.ID == email.ID);

                if (filtro == "nivel-ocupacional")
                {
                    query = query.Where(x => x.NivelOcupacional != null);
                }

                if (filtro == "perfil")
                {
                    query = query.Where(x => x.Perfil != null);
                }

                if (filtro == "uf")
                {
                    query = query.Where(x => x.Uf != null);
                }

                if (filtro == "usuario")
                {
                    query = query.Where(x => x.Usuario != null);
                }

                if (filtro == "turma")
                {
                    query = query.Where(x => x.Turma != null || x.Status != null);
                }

                var listaPermissoes = query.ToList();
                foreach (EmailEnvioPermissao permissao in listaPermissoes)
                {
                    email.ListaPermissao.Remove(permissao);
                }

                manter.Salvar(email);

                rptFiltrosPerfil.DataSource = FiltrarPermissoesPerfil(email.ListaPermissao);
                rptFiltrosPerfil.DataBind();

                rptFiltrosNivelOcupacional.DataSource = FiltrarPermissoesNivelOcupacional(email.ListaPermissao);
                rptFiltrosNivelOcupacional.DataBind();

                rptFiltrosUf.DataSource = FiltrarPermissoesUf(email.ListaPermissao);
                rptFiltrosUf.DataBind();

                rptFiltrosUsuario.DataSource = FiltrarPermissoesUsuario(email.ListaPermissao);
                rptFiltrosUsuario.DataBind();

                rptFiltrosTurma.DataSource = FiltrarPermissoesTurma(email.ListaPermissao);
                rptFiltrosTurma.DataBind();

                rptFiltrosStatus.DataSource = FiltrarPermissoesStatus(email.ListaPermissao);
                rptFiltrosStatus.DataBind();

                esconderFiltros(email);

                if (email.ListaPermissao.Count <= 0)
                {
                    OcultarModal();
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Você deve selecionar pelo menos um filtro");
                    return;
                }

                ucPermissoes1.LimparCampos();
                PreencherCampos(email);

                totalGerado = _manterEmailEnvio.ObterUsuariosParaEnvio(email).Count();

                AlterarMensagemModal(totalGerado);
            }
        }
        protected void btnRemoverFiltro_Click(object sender, EventArgs e)
        {
            var btnRemover = (HtmlButton)sender;

            int id;

            if (int.TryParse(btnRemover.Attributes["data-id"], out id) && idEmailGerado != null)
            {
                classes.EmailEnvio email;

                using (var manter = new ManterEmailEnvio())
                {
                    email = manter.ObterEmailEnvioPorID(idEmailGerado.Value);
                    email = manter.RemoverEmailsGerados(email);

                    // Busca por id novamente para ter o objeto novamente na sessão do nhibernate
                    email = manter.ObterEmailEnvioPorID(email.ID);

                    var permissao = new ManterEmailEnvioPermissao().ObterPorID(id);
                    email.ListaPermissao.Remove(permissao);

                    manter.AlterarEmailEnvio(email, true);

                    GerarEmails(email);
                }

                rptFiltrosPerfil.DataSource = FiltrarPermissoesPerfil(email.ListaPermissao);
                rptFiltrosPerfil.DataBind();

                rptFiltrosNivelOcupacional.DataSource = FiltrarPermissoesNivelOcupacional(email.ListaPermissao);
                rptFiltrosNivelOcupacional.DataBind();

                rptFiltrosUf.DataSource = FiltrarPermissoesUf(email.ListaPermissao);
                rptFiltrosUf.DataBind();

                rptFiltrosUsuario.DataSource = FiltrarPermissoesUsuario(email.ListaPermissao);
                rptFiltrosUsuario.DataBind();

                rptFiltrosTurma.DataSource = FiltrarPermissoesTurma(email.ListaPermissao);
                rptFiltrosTurma.DataBind();

                rptFiltrosStatus.DataSource = FiltrarPermissoesStatus(email.ListaPermissao);
                rptFiltrosStatus.DataBind();

                esconderFiltros(email);

                if (email.ListaPermissao.Count <= 0)
                {
                    OcultarModal();
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Você deve selecionar pelo menos um filtro");
                    return;
                }

                ucPermissoes1.LimparCampos();
                PreencherCampos(email);

                totalGerado = new ManterEmail().ObterPorEmailEnvio(email).Select(x => new { x.ID }).Count();

                AlterarMensagemModal(totalGerado);
            }
        }