public Resultado Inserir(Perfil oPerfil)
        {
            PerfilProcess oPerfilProcess = new PerfilProcess();
            Resultado resultado = new Resultado();

            resultado = oPerfilProcess.Inserir(oPerfil);

            if (resultado.Sucesso)
            {
                oPerfil.PerfilId = resultado.Id;
                foreach (Modulo oModulo in oPerfil.Modulos)
                {
                    if (oModulo.PodeAcessar > 0)
                    {
                        resultado = oPerfilProcess.InserirAcesso(oPerfil.PerfilId, oModulo.ModuloId, oModulo.PodeAcessar);

                        if (!resultado.Sucesso)
                        {
                            break;
                        }
                    }
                }
            }

            return resultado;
        }
        public Perfil GetPerfilByID(int PerfilID)
        {
            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_PERFIL_PESQUISAR");
            this.m_db.AddInParameter(dbc, "@IDPERFIL", DbType.Int32, PerfilID);

            Perfil oPerfil = new Perfil();

            using (IDataReader readerPerfil = this.m_db.ExecuteReader(dbc))
            {
                if (readerPerfil.Read())
                {
                    oPerfil.PerfilId = Conversion.preencheCampoInt(readerPerfil["PERFIL_ID"]);
                    oPerfil.Descricao = Conversion.preencheCampoString(readerPerfil["DSC_PERFIL"]);
                    oPerfil.Modulos = new ModuloData().Listar(oPerfil.PerfilId);

                }
                readerPerfil.Dispose();
            }
            return oPerfil;
        }
        public List<Perfil> Listar()
        {
            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_PERFIL_LISTA");
            List<Perfil> listPerfil = new List<Perfil>();

            using (IDataReader readerCategoria = this.m_db.ExecuteReader(dbc))
            {
                while (readerCategoria.Read())
                {
                    Perfil oPerfil = new Perfil();
                    oPerfil.PerfilId = Conversion.preencheCampoInt(readerCategoria["PERFIL_ID"]);
                    oPerfil.Descricao = Conversion.preencheCampoString(readerCategoria["DSC_PERFIL"]);
                    oPerfil.Modulos = new ModuloData().Listar(oPerfil.PerfilId);

                    listPerfil.Add(oPerfil);
                }
                readerCategoria.Dispose();
            }
            return listPerfil;
        }
        private void SalvarDadosPerfil()
        {
            Perfil oPerfil = new Perfil();
            PerfilFacade oPerfilFacade = new PerfilFacade();
            Resultado resultado = new Resultado();
            String oMenssagem = string.Empty;
            //bool ok = false;
            string script = "";
            try
            {
                oPerfil.PerfilId = tbxCodigoPerfil.Text.Equals("") ? 0 : Int32.Parse(tbxCodigoPerfil.Text);
                oPerfil.Descricao = tbxDescricaoPerfil.Text;

                oPerfil.Modulos = new ModuloFacade().Listar(ref resultado);

                //Atribui os valores selecionados no gridview nos módulos que pode acessar
                foreach (GridViewRow r in gvModulosPerfil.Rows)
                {
                    if (r.RowType.Equals(DataControlRowType.DataRow))
                    {
                        oPerfil.Modulos[r.RowIndex].PodeAcessar = (r.FindControl("chkPermissaoModulo") as CheckBox).Checked ? 1 : 0;
                    }
                }

                //resultado = oPerfilFacade.Inserir(oPerfil);
                resultado = (ViewState["CodigoPerfil"].ToString().Equals("0") ? oPerfilFacade.Inserir(oPerfil) : oPerfilFacade.Atualizar(oPerfil));
                if (resultado.Sucesso)
                {
                    oMenssagem = ViewState["CodigoPerfil"].ToString().Equals("0") ? "Perfil Cadastrado com Sucesso!" : "Perfil Alterado com Sucesso!";
                    ViewState["CodigoPerfil"] = oPerfil.PerfilId.ToString();
                    tbxCodigoPerfil.Text = oPerfil.PerfilId.ToString();
                    PesquisarPerfil();

                }
                script = Consts.JavaScript.Alert(Consts.Funcoes.Replacer4js(oMenssagem), false);
            }
            finally
            {
                Fechar();
            }
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alerta", script, true);
        }
        private void ExibirDadosPerfil(string pID)
        {
            Perfil oTUsrPerfil = new Perfil();
            Resultado resultado = new Resultado();
            try
            {
                oTUsrPerfil = new PerfilFacade().Seleciona(Convert.ToInt32(pID), ref resultado);
                tbxCodigoPerfil.Text = oTUsrPerfil.PerfilId.ToString();
                tbxDescricaoPerfil.Text = oTUsrPerfil.Descricao.ToString();
                ViewState["CodigoPerfil"] = oTUsrPerfil.PerfilId.ToString();

                //Grid de módulos com acesso
                gvModulosPerfil.DataSource = oTUsrPerfil.Modulos;
                gvModulosPerfil.DataKeyNames = new string[1] { "ModuloID" };
                gvModulosPerfil.DataBind();

                string script = "$dvModalLoader.jqmHide();$dvDetCadPerfil.jqmShow();";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "abre", script, true);
            }
            finally
            {
                // oTUsrPerfil.Dispose();
            }
        }
 public PerfilValidation(Perfil perfil)
 {
     this.m_perfil = perfil;
     m_resultado.Sucesso = true;
 }
        public Usuario GetByID(int UsuarioID)
        {
            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_USUARIO_GET_USUARIO");
            this.m_db.AddInParameter(dbc, "@USUARIO_ID", DbType.String, UsuarioID);

            Usuario oUsuario = new Usuario();
            using (IDataReader readerUsuario = this.m_db.ExecuteReader(dbc))
            {
                if (readerUsuario.Read())
                {
                    //usuarioRetorno = new Usuario();
                    oUsuario.UsuarioId = Conversion.preencheCampoInt(readerUsuario["USUARIO_ID"]);
                    oUsuario.Login = Conversion.preencheCampoString(readerUsuario["LOGIN"]);
                    oUsuario.SenhaCript = readerUsuario["SENHA"];
                    oUsuario.Nome = Conversion.preencheCampoString(readerUsuario["NOME"]);
                    oUsuario.Email = Conversion.preencheCampoString(readerUsuario["EMAIL"]);
                    oUsuario.Status = Conversion.preencheCampoString(readerUsuario["STATUS"]);

                    Perfil _Perfil = new Perfil();
                    _Perfil.PerfilId = Conversion.preencheCampoInt(readerUsuario["Perfil_ID"]);
                    _Perfil.Descricao = Conversion.preencheCampoString(readerUsuario["DSC_Perfil"]);

                    Grupo _Area = new Grupo();
                    _Area.ID = Conversion.preencheCampoInt(readerUsuario["Grupo_ID"]);
                    _Area.Nome= Conversion.preencheCampoString(readerUsuario["nom_Grupo"]);

                    oUsuario.Area = _Area;

                    _Perfil.Modulos = new ModuloData().Listar(_Perfil.PerfilId);

                    oUsuario.Perfil = _Perfil;
                }
                else

                    readerUsuario.Close();
            }
            return oUsuario;
        }
        /// <summary>
        /// Selecionar um usuário especifico
        /// </summary>
        /// <param name="idPerfil">Identificador do Usuario</param>
        /// <returns>Objeto usuário preenchido</returns>
        public Usuario Autenticar(Usuario login, ref Resultado resultado)
        {
            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.sp_login");
            this.m_db.AddInParameter(dbc, "@LOGIN", DbType.String, login.Login);

            using (IDataReader readerUsuario = this.m_db.ExecuteReader(dbc))
            {
                if (readerUsuario.Read())
                {
                    resultado.Sucesso = true;
                    login.UsuarioId = Conversion.preencheCampoInt(readerUsuario["USUARIO_ID"]);
                    login.Login = Conversion.preencheCampoString(readerUsuario["LOGIN"]);
                    login.SenhaCript = readerUsuario["SENHA"];
                    login.Nome = Conversion.preencheCampoString(readerUsuario["NOME"]);
                    login.Email = Conversion.preencheCampoString(readerUsuario["EMAIL"]);
                    login.Status = Conversion.preencheCampoString(readerUsuario["STATUS"]);

                    Perfil _Perfil = new Perfil();
                    _Perfil.PerfilId = Conversion.preencheCampoInt(readerUsuario["Perfil_ID"]);
                    _Perfil.Descricao = Conversion.preencheCampoString(readerUsuario["DSC_Perfil"]);

                    Grupo _Area = new Grupo();
                    _Area.ID = Conversion.preencheCampoInt(readerUsuario["Grupo_ID"]);
                    _Area.Nome = Conversion.preencheCampoString(readerUsuario["nom_Grupo"]);

                    login.Area = _Area;

                    _Perfil.Modulos = new ModuloData().Listar(_Perfil.PerfilId);
                    login.ItensMenu = new ModuloData().ListarMenu(_Perfil.PerfilId);

                    login.Perfil = _Perfil;
                }
                else
                {
                    resultado.Sucesso = false;
                }

                readerUsuario.Close();
            }
            return login;
        }