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; } }
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); } }