public Resultado AtualizarSenha(Usuario oUsuario)
        {
            Resultado resultado = new Resultado();
            Mensagem mensagem = new Mensagem();
            mensagem.Campo = "Usuario";
            try
            {
                DbCommand dbCommand = this.m_db.GetStoredProcCommand("dbo.SP_USUARIO_UPDATE");
                byte[] senhacripto = null;
                if (oUsuario.Senha != null)
                {
                    //Criptofrafa a senha atual
                    MD5CryptoServiceProvider hash = new MD5CryptoServiceProvider();
                    UTF8Encoding encode = new UTF8Encoding();
                    senhacripto = hash.ComputeHash(encode.GetBytes(oUsuario.Senha));
                }

                this.m_db.AddInParameter(dbCommand, "@SENHA", DbType.Binary, senhacripto);
                this.m_db.AddInParameter(dbCommand, "@USUARIO_ID", DbType.Int32, oUsuario.UsuarioId);

                resultado.Id = Convert.ToInt32(this.m_db.ExecuteScalar(dbCommand));
                resultado.Sucesso = (resultado.Id >= 0);
                mensagem.Descricoes.Add("Senha atualizada com sucesso!");
                resultado.Mensagens.Add(mensagem);
            }
            catch (Exception ex)
            {
                resultado.Sucesso = false;
                mensagem.Descricoes.Add(ex.Message);
                resultado.Mensagens.Add(mensagem);
            }

            return resultado;
        }
        ///// <summary>
        ///// Selecionar um usuário especifico
        ///// </summary>
        ///// <param name="idPerfil">Identificador do Usuário</param>
        ///// <param name="resultado">Retorna se a busca foi bem sucedida por referência</param>
        ///// <returns>Objeto usuário preenchido</returns>
        public Resultado Alterar(Usuario oUsuario)
        {
            Resultado resultado = new Resultado();

            UsuarioData usuarioData = new UsuarioData();
            resultado = usuarioData.Atualizar(oUsuario);
            return resultado;
        }
        ///// <summary>
        ///// Selecionar um usuário especifico
        ///// </summary>
        ///// <param name="idPerfil">Identificador do Usuário</param>
        ///// <param name="resultado">Retorna se a busca foi bem sucedida por referência</param>
        ///// <returns>Objeto usuário preenchido</returns>
        public Resultado Autenticar(Usuario usuario)
        {
            Resultado resultado = new UsuarioValidation(usuario).ValidarLogin();
            if (resultado.Sucesso)
            {
                resultado.Sucesso = true;
            }
            else
            {
                resultado.Sucesso = false;
            }

            return resultado;
        }
        public Resultado AlterarSenha(Usuario oUsuario)
        {
            Resultado resultado = new Resultado();
            resultado = new UsuarioValidation().ValidarSenha(oUsuario);

            if (resultado.Sucesso)
            {
                oUsuario.Senha = oUsuario.NovaSenha;
                UsuarioData usuarioData = new UsuarioData();
                resultado = usuarioData.AtualizarSenha(oUsuario);

            }

            return resultado;
        }
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            string msgConfirmacao = string.Empty;

            Resultado resultado = new Resultado();
            Usuario u = new Usuario();

            UsuarioFacade UsuarioF = new UsuarioFacade();

            resultado = UsuarioF.Autenticar(u, ref resultado);
            if (resultado.Sucesso)
            {
                Session.Add("USUARIO", u);
                Response.Redirect("Default.aspx");
            }
            else
            {

                ScriptManager.RegisterStartupScript(this, this.GetType(), "ResultadoConfirmação", "alert('" + resultado.Mensagens[0].Descricoes[0].ToString() + "');", true);
            }
        }
 public Resultado Autenticar(Usuario usuario, ref Resultado resultado)
 {
     return new UsuarioProcess().Autenticar(usuario);
 }
        ///// <summary>
        ///// Selecionar um usuário especifico
        ///// </summary>
        ///// <param name="idPerfil">Identificador do Usuário</param>
        ///// <param name="resultado">Retorna se a busca foi bem sucedida por referência</param>
        ///// <returns>Objeto usuário preenchido</returns>
        public Resultado Inserir(Usuario oUsuario)
        {
            Resultado resultado = new Resultado();

            UsuarioData usuarioData = new UsuarioData();
            resultado = usuarioData.Inserir(oUsuario);
            return resultado;
        }
        public Resultado TemAcesso(Usuario oUsuario, string pNomeForm, ref Resultado resultado)
        {
            foreach (Modulo m in oUsuario.Perfil.Modulos)
            {
                if (m.PaginaWeb.ToUpper().Equals(pNomeForm.ToUpper()) && m.PodeAcessar.Equals(1))
                {
                    resultado.Sucesso = true;
                    break;
                }
                else
                {
                    Mensagem mensagem = new Mensagem();
                    mensagem.Campo = "Módulos";
                    mensagem.Descricoes.Insert(0, "Nenhum módulo encontrado para o funcionalidade!");

                    resultado.Mensagens.Add(mensagem);
                    resultado.Sucesso = false;
                }
            }

            return resultado;
        }
        private void SalvarUsuario()
        {
            string script = "";
            string msg = "";
            Resultado resultado = new Resultado();
            if (ViewState["UsuID"].ToString().Equals("0") && tbxSenhaUsuario.Text.Trim().Equals(""))
            {
                script = Consts.JavaScript.Alert(Consts.Funcoes.Replacer4js("O campo SENHA é obrigatório na inserção"), false);
            }
            else
            {
                Usuario oUsuarios = new Usuario();
                try
                {
                    oUsuarios.UsuarioId = Int32.Parse(ViewState["UsuID"].ToString());
                    oUsuarios.Nome = tbxNomeUsuario.Text;
                    oUsuarios.Email = txtemail.Text;
                    oUsuarios.Login = tbxLoginUsuario.Text;
                    oUsuarios.PerfilId = Int32.Parse(ddlPerfilUsuario.SelectedValue);
                    oUsuarios.Area.ID = Int32.Parse(ddlArea.SelectedValue);
                    oUsuarios.Status = ddlStatus.SelectedValue;
                    oUsuarios.Senha = tbxSenhaUsuario.Text.Trim() == "" ? null : tbxSenhaUsuario.Text.Trim();

                    if (ViewState["UsuID"].ToString().Equals("0"))
                    {
                        resultado = usuarioFacade.Inserir(oUsuarios);
                        msg = "Usuário Cadastrado com Sucesso!";
                        if (resultado.Sucesso)
                        {
                            LiparCampos();
                            PesquisarUsuario();
                        }
                    }
                    else
                    {
                        resultado = usuarioFacade.Alterar(oUsuarios);
                        msg = resultado.Mensagens[0].Descricoes[0].ToString();
                    }

                    if (resultado.Sucesso)
                    {
                        LiparCampos();
                        PesquisarUsuario();
                    }
                    script = Consts.JavaScript.Alert(Consts.Funcoes.Replacer4js(msg.ToString()), false);
                }
                finally
                {
                    Fechar();
                }
            }
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alerta", script, true);
        }
 private void ExibirDadosUsuario(int pUID)
 {
     Usuario oUsuario = new Usuario();
     try
     {
         oUsuario = usuarioFacade.GetByID(pUID);
         //oTUsuarios.SetByID();
         tbxCodigoUsuario.Text = oUsuario.UsuarioId.ToString();
         tbxNomeUsuario.Text = oUsuario.Nome.ToString();
         tbxLoginUsuario.Text = oUsuario.Login.ToString();
         txtemail.Text = oUsuario.Email.ToString();
         ddlPerfilUsuario.SelectedValue = oUsuario.Perfil.PerfilId.ToString();
         ddlStatus.SelectedValue = oUsuario.Status.ToString();
         ViewState["UsuID"] = oUsuario.UsuarioId.ToString();
         tbxSenhaUsuario.Text = "";
         string script = "$dvModalLoader.jqmHide();$dvDetCadUsu.jqmShow();";
         ScriptManager.RegisterStartupScript(this, this.GetType(), "abre", script, true);
     }
     finally
     {
         //oUsuario.Dispose();
     }
 }
 public Resultado TemAcesso(Usuario oUsuario, string pNomeForm, ref Resultado resultado)
 {
     return new ModuloProcess().TemAcesso(oUsuario, pNomeForm, ref resultado);
 }
        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;
        }
 public Resultado AlterarSenha(Usuario oUsuario)
 {
     return new UsuarioProcess().AlterarSenha(oUsuario);
 }
 public UsuarioValidation(Usuario usuario)
 {
     this.m_usuario = usuario;
     m_resultado.Sucesso = true;
 }
        //#region Métodos
        //#region Validação de Campos
        ///// <summary>
        ///// Verificar se já existe um algum usuário com mesmo login que está sendo pesquisado
        ///// </summary>
        internal Resultado ValidarSenha(Usuario oUsuario)
        {
            //UsuarioData usuarioData = new UsuarioData();
            Mensagem mensagem = new Mensagem();
            Resultado resultado = new Resultado();
            Usuario usuarioRetorno = new UsuarioData().Autenticar(oUsuario, ref resultado);

            if (resultado.Sucesso)
            {
                //Criptofrafa a senha atual
                MD5CryptoServiceProvider hash = new MD5CryptoServiceProvider();
                UTF8Encoding encode = new UTF8Encoding();
                byte[] senhacripto = hash.ComputeHash(encode.GetBytes(oUsuario.Senha));

                //Obtém a senha atual do BD
                byte[] pwd = (byte[])usuarioRetorno.SenhaCript;
                if (Consts.Funcoes.CompararIgualdadeByteArray(pwd, senhacripto))
                {
                    m_resultado.Sucesso = true;
                }
                else
                {
                    mensagem.Campo = "Login";
                    mensagem.Descricoes.Add("Usuário ou senha inválidos!");
                    m_resultado.Mensagens.Add(mensagem);
                    m_resultado.Sucesso = false;
                }

            }
            else
            {
                mensagem.Campo = "Login";
                mensagem.Descricoes.Add("Usuário ou senha inválidos!");
                m_resultado.Mensagens.Add(mensagem);
                m_resultado.Sucesso = false;
            }

            return m_resultado;
        }
        public Resultado Inserir(Usuario oUsuario)
        {
            Resultado resultado = new Resultado();
            try
            {
                DbCommand dbCommand = this.m_db.GetStoredProcCommand("dbo.SP_INSERE_USUARIO");

                //Criptofrafa a senha atual
                MD5CryptoServiceProvider hash = new MD5CryptoServiceProvider();
                UTF8Encoding encode = new UTF8Encoding();
                byte[] senhacripto = hash.ComputeHash(encode.GetBytes(oUsuario.Senha));

                this.m_db.AddInParameter(dbCommand, "@NOME", DbType.String, oUsuario.Nome.Trim());
                this.m_db.AddInParameter(dbCommand, "@LOGIN", DbType.String, oUsuario.Login.Trim());
                this.m_db.AddInParameter(dbCommand, "@EMAIL", DbType.String, oUsuario.Email.Trim());
                this.m_db.AddInParameter(dbCommand, "@PERFIL_ID", DbType.Int32, oUsuario.PerfilId);
                this.m_db.AddInParameter(dbCommand, "@GRUPO_ID", DbType.Int32, oUsuario.Area.ID);
                this.m_db.AddInParameter(dbCommand, "@SENHA", DbType.Binary, senhacripto);
                this.m_db.AddInParameter(dbCommand, "@STATUS", DbType.String, oUsuario.Status);

                resultado.Id = Convert.ToInt32(this.m_db.ExecuteScalar(dbCommand));
                resultado.Sucesso = (resultado.Id > 0);

            }
            catch (SqlException ex)
            {
                resultado.Sucesso = false;
                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "Pedido";
                mensagem.Descricoes.Add(ex.Message);
                resultado.Mensagens.Add(mensagem);
            }
            return resultado;
        }
        public List<Usuario> Listar(string pNome)
        {
            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_USUARIO_PESQUISA");
            this.m_db.AddInParameter(dbc, "@NOME", DbType.String, pNome);

            List<Usuario> listaCategoria = new List<Usuario>();

            using (IDataReader readerUsuario = this.m_db.ExecuteReader(dbc))
            {
                while (readerUsuario.Read())
                {
                    Usuario oUsuario = new Usuario();
                    oUsuario.UsuarioId = Conversion.preencheCampoInt(readerUsuario["USUARIO_ID"]);
                    oUsuario.Nome = Conversion.preencheCampoString(readerUsuario["NOME"]);
                    oUsuario.Login = Conversion.preencheCampoString(readerUsuario["LOGIN"]);
                    oUsuario.Email = Conversion.preencheCampoString(readerUsuario["SENHA"]);
                    oUsuario.Status = Conversion.preencheCampoString(readerUsuario["STATUS"].ToString().Trim());
                    oUsuario.Perfil = new PerfilData().GetPerfilByID(Conversion.preencheCampoInt(readerUsuario["PERFIL_ID"]));

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

                    oUsuario.Area = _Area;

                    listaCategoria.Add(oUsuario);
                }
                readerUsuario.Dispose();
            }
            return listaCategoria;
        }
 public Resultado Inserir(Usuario oUsuario)
 {
     return new UsuarioProcess().Inserir(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;
        }