Exemple #1
0
    private void Salvar()
    {
        try
        {
            codigo = Convert.ToInt32(Request.QueryString["Id"]);
            this.CarregarObjetos(Utilitarios.TipoTransacao.Salvar);

            if (codigo > 0)
            {
                //Obter os acessos selecionados
                string secoesSelecionadas = string.Empty;
                List <AcessoFuncionalidade> funcionalidadesSelecionadas = new List <AcessoFuncionalidade>();

                foreach (RepeaterItem item in rptPermissao.Items)
                {
                    CheckBox    chkItem = (CheckBox)item.FindControl("chkItem");
                    HiddenField hdnID   = (HiddenField)item.FindControl("hdnID");
                    if (chkItem.Checked)
                    {
                        secoesSelecionadas += string.Format("{0};", hdnID.Value);
                    }

                    Repeater rptPermissaoFuncionalidade = (Repeater)item.FindControl("rptPermissaoFuncionalidade");
                    foreach (RepeaterItem itemFilho in rptPermissaoFuncionalidade.Items)
                    {
                        CheckBox    chkItemFuncionalidade = (CheckBox)itemFilho.FindControl("chkItemFuncionalidade");
                        HiddenField hdnIDFuncionalidade   = (HiddenField)itemFilho.FindControl("hdnIDFuncionalidade");
                        if (chkItemFuncionalidade.Checked)
                        {
                            funcionalidadesSelecionadas.Add(new AcessoFuncionalidade
                            {
                                IdPerfil = this.codigo,
                                IdSecao  = Convert.ToInt32(hdnID.Value),
                                IdSecaoFuncionalidade = Convert.ToInt32(hdnIDFuncionalidade.Value)
                            });
                        }
                    }
                }

                //Atualiza o perfil e as seçoes selecionadas pelo usuário
                if (DOPerfil.Atualizar(gobjPerfil, secoesSelecionadas) > 0)
                {
                    //Exclui funcionalidades anteriores
                    DOAcessoFuncionalidade.Excluir(codigo);

                    //Insere funcionalidades atualizadas
                    foreach (AcessoFuncionalidade objAcessoFuncionalidade in funcionalidadesSelecionadas)
                    {
                        DOAcessoFuncionalidade.Inserir(objAcessoFuncionalidade);
                    }
                }
            }

            Response.Redirect("Listar.aspx?sucesso=1");
        }
        catch (Exception ex)
        {
            //Chama o método para gravar erro
            ((Manager_Interna)Master).ExibirAlerta(ex);
        }
    }
    private void Salvar()
    {
        try
        {
            codigo = Convert.ToInt32(Request.QueryString["Id"]);
            this.CarregarObjetos(Utilitarios.TipoTransacao.Salvar);

            //Obter os acessos selecionados
            List <Secao> lstSecoes = new List <Secao>();

            foreach (RepeaterItem item in rptGrupos.Items)
            {
                Repeater rptPermissao = (Repeater)item.FindControl("rptPermissao");

                foreach (RepeaterItem itemAcesso in rptPermissao.Items)
                {
                    HiddenField hdnID            = (HiddenField)itemAcesso.FindControl("hdnID");
                    CheckBox    chkControleTotal = (CheckBox)itemAcesso.FindControl("chkControleTotal");
                    CheckBox    chkAcessar       = (CheckBox)itemAcesso.FindControl("chkAcessar");
                    CheckBox    chkInserir       = (CheckBox)itemAcesso.FindControl("chkInserir");
                    CheckBox    chkEditar        = (CheckBox)itemAcesso.FindControl("chkEditar");
                    CheckBox    chkExcluir       = (CheckBox)itemAcesso.FindControl("chkExcluir");

                    Secao objSecao = new Secao();

                    objSecao.Id = Convert.ToInt32(hdnID.Value);
                    objSecao.PossuiControleTotal = chkControleTotal.Checked;
                    objSecao.PodeAcessar         = chkAcessar.Checked;
                    objSecao.PodeInserir         = chkInserir.Checked;
                    objSecao.PodeAlterar         = chkEditar.Checked;
                    objSecao.PodeExcluir         = chkExcluir.Checked;

                    lstSecoes.Add(objSecao);
                }
            }

            if (codigo > 0)
            {
                DOSecao.ExcluirAcessosPerfil(codigo);
                DOPerfil.Atualizar(gobjPerfil);
            }
            else
            {
                codigo = DOPerfil.Inserir(gobjPerfil);
            }

            foreach (Secao objSecao in lstSecoes)
            {
                objSecao.IdPerfil = codigo;
                DOSecao.InserirAcessoPerfil(objSecao);
            }


            Response.Redirect("Listar.aspx?sucesso=1");
        }
        catch (Exception ex)
        {
            //Chama o método para gravar erro
            ((Modulos_Modulos)Master).ExibirAlerta(ex);
        }
    }