/// <summary> /// Método encargado de Insertar los Perfiles de Seguridad /// </summary> /// <param name="id_perfil">Perfil de Seguridad</param> /// <param name="id_usuario">Usuario</param> /// <param name="id_usuario_act">Usuario que Actualiza el Registro</param> /// <returns></returns> public static RetornoOperacion InsertaPerfilSeguridadUsuario(int id_perfil, int id_usuario, int id_usuario_act) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Armando Arreglo de Parametros object[] param = { 1, 0, id_perfil, id_usuario, true, id_usuario_act, true, "", "" }; //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando Perfil de Usuario using (PerfilSeguridadUsuario psu = PerfilSeguridadUsuario.ObtienePerfilActivo(id_usuario)) { //Validando que Existe el Perfil if (psu._id_perfil_usuario > 0) { //Editando Perfil result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, false, id_usuario_act); //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Ejecutando SP result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param); } } else { //Ejecutando SP result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param); } //Validando que las Operaciones fueran Exitosas if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } //Devolviendo Resultado Obtenido return(result); }
/// <summary> /// Eventos Producido al Seleccionar el Perfil de Usuario /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkSeleccionar_Click(object sender, EventArgs e) { //Validando que Existan Perfiles if (gvPerfilesUsuario.DataKeys.Count > 0) { //Seleccionando Fila Controles.SeleccionaFila(gvPerfilesUsuario, sender, "lnk", false); //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando Perfil de Usuario using (SAT_CL.Seguridad.PerfilSeguridadUsuario psu = new SAT_CL.Seguridad.PerfilSeguridadUsuario(Convert.ToInt32(gvPerfilesUsuario.SelectedDataKey["IdPerfilUsuario"]))) { //Validando que Exista el Perfil if (psu.id_perfil_usuario > 0) { //Instanciando Perfil de Usuario using (SAT_CL.Seguridad.PerfilSeguridadUsuario pActivo = SAT_CL.Seguridad.PerfilSeguridadUsuario.ObtienePerfilActivo(this._id_usuario)) { //Validando que Exista un Perfil Activo if (pActivo.id_perfil_usuario > 0) { //Validando que sean Distintos if (pActivo.id_perfil_usuario != psu.id_perfil_usuario) { //Actualizando Perfil Activo result = pActivo.EditaPerfilSeguridadUsuario(pActivo.id_perfil, pActivo.id_usuario, false, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Actualizando Perfil Actual result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, true, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } else { //Actualizando Perfil Actual result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, true, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } else { //Actualizando Perfil Actual result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, true, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Instanciando Usuario using (SAT_CL.Seguridad.Usuario user = (SAT_CL.Seguridad.Usuario)Session["usuario"]) { //Actualizando Atributos if (user.ActualizaAtributos()) { //Actualizando Perfil de Usuario psu.ActualizaPerfilSeguridadUsuario(); //Instanciando Perfil using (SAT_CL.Seguridad.PerfilSeguridad ps = new PerfilSeguridad(psu.id_perfil)) { //Instanciando Perfil de Seguridad if (ps.id_perfil_seguridad > 0) { //Instanciando Forma using (SAT_CL.Seguridad.Forma form = new SAT_CL.Seguridad.Forma(ps.id_forma_inicio)) { //Completando Transacción trans.Complete(); //Inicializando variables de Sesión inicializaVariablesSesion(user); //Obteniendo Ruta Relativa string url = TSDK.Base.Cadena.RutaRelativaAAbsoluta(Page.AppRelativeVirtualPath, form.ruta_relativa); //Redireccionando a la Forma Inicio del Perfil Response.Redirect(url); } } } } } } } } } } } }