Ejemplo n.º 1
0
        public static void crear_rol(string nombre_rol, List <String> funcionalidades_descripcion)
        {
            try
            {
                string       procedure  = "KFC.pro_crear_rol";
                SqlParameter parametro1 = new SqlParameter("@descripcion", SqlDbType.Text);
                parametro1.Value = nombre_rol;
                SqlParameter parametroOutput = new SqlParameter("@id", SqlDbType.Int);
                parametroOutput.DbType    = DbType.Int32;
                parametroOutput.Direction = ParameterDirection.Output;
                var parametros = new List <SqlParameter>();
                parametros.Add(parametro1);
                parametros.Add(parametroOutput);
                SqlCommand procedureEjecutado = InteraccionDB.ejecutar_storedProcedureConRetorno(procedure, parametros);
                int        id_rol_creado      = 0;
                id_rol_creado = Convert.ToInt32(procedureEjecutado.Parameters["@id"].Value);
                if (id_rol_creado <= 0)
                {
                    throw new Exception("No se creo el Rol, el Procedure que Crea los Roles devolvio ID invalido. ");
                }

                //Inserto Cada Funcionalidad
                foreach (var funcionalidad in funcionalidades_descripcion)
                {
                    insertar_funcionalidad(id_rol_creado, funcionalidad);
                }

                return;
            }
            catch (Exception e)
            {
                InteraccionDB.ImprimirExcepcion(e);

                throw e;
            }
        }
Ejemplo n.º 2
0
        public static Usuario validar_obtener_usuario(string usuario, string password, string rol_descripcion)
        {
            try
            {
                /*
                 * string funcion = "SELECT KFC.fun_validar_usuario(@user, @contrasenia, @rol_desc)";
                 * SqlParameter parametro1 = new SqlParameter("@user", SqlDbType.Text);
                 * parametro1.Value = usuario.ToUpper();
                 * SqlParameter parametro2 = new SqlParameter("@contrasenia", SqlDbType.Text);
                 * parametro2.Value = password.ToUpper();
                 * SqlParameter parametro3 = new SqlParameter("@rol_desc", SqlDbType.Text);
                 * parametro3.Value = rol_descripcion.ToUpper();
                 *
                 * var parametros = new List<SqlParameter>();
                 * parametros.Add(parametro1);
                 * parametros.Add(parametro2);
                 * parametros.Add(parametro3);
                 *
                 * var reader = InteraccionDB.ejecutar_funcion(funcion, parametros);
                 */



                string       procedure  = "KFC.pro_validar_usuario";
                SqlParameter parametro1 = new SqlParameter("@usuario", SqlDbType.Text);
                parametro1.Value = usuario.ToUpper();
                SqlParameter parametro2 = new SqlParameter("@contrasenia", SqlDbType.Text);
                parametro2.Value = password.ToUpper();
                SqlParameter parametro3 = new SqlParameter("@rol_desc", SqlDbType.Text);
                parametro3.Value = rol_descripcion.ToUpper();
                SqlParameter parametroOutput = new SqlParameter("@id", SqlDbType.Int);
                parametroOutput.DbType    = DbType.Int32;
                parametroOutput.Direction = ParameterDirection.Output;

                var parametros = new List <SqlParameter>();
                parametros.Add(parametro1);
                parametros.Add(parametro2);
                parametros.Add(parametro3);
                parametros.Add(parametroOutput);

                int id = -1;
                //Encapsulo Obtener ID usuario paara ver si fallo contrasenia y aumentar intentos fallidos
                try
                {
                    SqlCommand procedureEjecutado = InteraccionDB.ejecutar_storedProcedureConRetorno(procedure, parametros);
                    id = Convert.ToInt32(procedureEjecutado.Parameters["@id"].Value);
                    if (id <= 0)
                    {
                        throw new Exception("Usuario Inexistente, Esta mal la Contraseña o no esta Habilitado el Usuario");
                    }
                }
                catch (Exception e)
                {
                    InteraccionDB.ImprimirExcepcion(e);

                    if (e.Message.Contains("Esta Mal la Contrasenia"))
                    {
                        intentos_aumentar_fallidos_logIn(usuario);
                    }
                    throw new Exception(e.Message);
                    //throw new Exception("Usuario Inexistente,   Esta mal la Contraseña,   el Rol no pertenece al Usuario   o No esta Habilitado el Usuario");
                }

                //Encapsulo reiniciar intentos, si falla solo es un warning no debe parar todo.
                try
                {
                    intentos_reiniciar(usuario);
                }
                catch (Exception e)
                {
                    InteraccionDB.ImprimirExcepcion(e);
                    MessageBox.Show("WARNING: No pudo Reiniciarse Intentos Usuario. Es raro.  " + e.Message, "Log_In", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

                Usuario user = cargar_datos(id, rol_descripcion);

                return(user);
            }
            catch (Exception e)
            {
                InteraccionDB.ImprimirExcepcion(e);
                throw new Exception("Error al Validar Datos Logueo.  " + e.Message);
            }
        }