/// <summary> /// Método que almacena los datos obtenidos de los controles del formulario Usuario a la base de datos. /// </summary> private void guardarUsuario() { //Creación del objeto retorno RetornoOperacion retorno = new RetornoOperacion(); //Declarando Variable Auxiliar int id_usuario = 0; //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Valida cada estado del formulario. switch ((Pagina.Estatus)Session["estatus"]) { //En caso de que el estado de la página sea nuevo, realizara una inserción de datos. case Pagina.Estatus.Nuevo: { //Validando que la Contraseña sea Identica if (txtContrasena.Text == txtRepitaContrasena.Text) { //Asigna al objeto retorno los valores obtenidos del formulario Usuario, invocando al método de insercion de la clase usuario. retorno = SAT_CL.Seguridad.Usuario.InsertaUsuario(txtNombre.Text, txtEmail.Text, txtContrasena.Text, DateTime.Today, Convert.ToByte(txtVigencia.Text), Convert.ToByte(txtTiempo.Text), txtPregunta.Text, txtRespuesta.Text, Convert.ToByte(txtSesiones.Text), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando que la Operación fuese Exitosa if (retorno.OperacionExitosa) { //Obteniendo Registro de Usuario id_usuario = retorno.IdRegistro; //Insertando Usuario - Compania retorno = SAT_CL.Seguridad.UsuarioCompania.InsertaUsuarioCompania(id_usuario, ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor, Convert.ToInt32(ddlDepartamento.SelectedValue), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } break; } //En caso de que el estado de la página sea edición, realizara una actualización de datos. case Pagina.Estatus.Edicion: { //Invoca al constructor de la clase Usuario y asigna como parametro la variable de session id_registro using (SAT_CL.Seguridad.Usuario us = new SAT_CL.Seguridad.Usuario((int)Session["id_registro"])) { //Valida que exista el registro en la base de datos if (us.id_usuario != 0) { //Asigna al objeto retorno los datos obtenidos del formulario, invocando al método de actualización de la clase usuario. retorno = us.EditaInformaciónGeneral(txtNombre.Text, txtEmail.Text, Convert.ToByte(txtSesiones.Text), Convert.ToByte(txtTiempo.Text), Convert.ToByte(txtVigencia.Text), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando que la Operación fuese Exitosa if (retorno.OperacionExitosa) { //Obteniendo Registro de Usuario id_usuario = retorno.IdRegistro; //Instanciando Usuario Compania using (SAT_CL.Seguridad.UsuarioCompania uc = new SAT_CL.Seguridad.UsuarioCompania(us.id_usuario, ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) { //Validando que Exista un registro Usuario - Compania if (uc.id_usuario_compania > 0) { //Editando Usuario - Compania retorno = uc.EditaUsuarioCompania(us.id_usuario, uc.id_compania_emisor_receptor, Convert.ToInt32(ddlDepartamento.SelectedValue), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } } } break; } } //Valida que la operacion de inserción se realizo correctamente if (retorno.OperacionExitosa) { //Instanciando Registro de Usuario retorno = new RetornoOperacion(id_usuario); //Completando Transacción trans.Complete(); } } //Valida que la operacion de inserción se realizo correctamente if (retorno.OperacionExitosa) { //Asigna el valor de estatus session en modo lectura. Session["estatus"] = Pagina.Estatus.Lectura; //Asigna a la variable de session id_registro el valor generado en la base de datos(id). Session["id_registro"] = retorno.IdRegistro; //Invoca al método inicializaForma. inicializaForma(); } //Muestra un mensaje acorde a la validación de la operación. lblError.Text = retorno.Mensaje; }
/// <summary> /// Evento que permite seleccionar y ejecutar acciones del menú. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lkbElementoMenu_Click(object sender, EventArgs e) { //Creación del objeto botonMenu que obtiene las opciones de los menú desplegable . LinkButton botonMenu = (LinkButton)sender; //Permite ejecutar acciones determinadas por cada opción del menú switch (botonMenu.CommandName) { //Si la elección del menú es la opción Nuevo case "Nuevo": { //Asigna a la variable de session estatus el estado del formulario en nuevo Session["estatus"] = Pagina.Estatus.Nuevo; //Asigna a la variable de session id_registro el valor de 0. Session["id_registro"] = 0; //Invoca al método inicializaForma inicializaForma(); //Limpia los mensajes de error del lblError lblError.Text = ""; //Hace un enfoque en el primer control txtNombre.Focus(); //Asigna el valor de 0, al método que inicializa el control de usuario PerfilUsuarioAlta ucPerfilUsuarioAlta.InicializaPerfilesUsuarioAlta(0, 0); break; } //Si la elección del menú es la opcion Abrir case "Abrir": { //Invoca al método inicializaAperturaRegistro(); inicializaAperturaRegistro(30, ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor); break; } //Si la elección del menú es la opción Guardar case "Guardar": { //Invoca al método guardaTipoPago(); guardarUsuario(); break; } //Si la elección del menú es la opción Editar case "Editar": { //Asigna a la variable session estaus el estado de la pagina nuevo Session["estatus"] = Pagina.Estatus.Edicion; //Invoca el método inicializaForma(); inicializaForma(); //Limpia los mensajes del lblError lblError.Text = ""; //Hace un efoque en el primer control txtNombre.Focus(); break; } //Si la elección del menú es la opción Eliminar case "Eliminar": { //Creación del objeto retorno RetornoOperacion retorno = new RetornoOperacion(); //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Invoca al constructor de la clase y asigna el valor de la variable de session id_registro. using (SAT_CL.Seguridad.Usuario us = new SAT_CL.Seguridad.Usuario((int)Session["id_registro"])) { //Valida si el registro existe. if (us.id_usuario > 0) { //Asigna al objeto retorno los datos del usuario que realizo el cambio de estado del registro(Deshabilito) retorno = us.DeshabilitaUsuario(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando Operación Exitosa if (retorno.OperacionExitosa) { //Instanciando registro de Usuario - Compania using (SAT_CL.Seguridad.UsuarioCompania uc = new SAT_CL.Seguridad.UsuarioCompania(us.id_usuario, Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtCompania.Text, "ID:", 1, "0")))) { //Validando que Existe el Registro if (uc.id_usuario_compania > 0) { //Deshabilitando retorno = uc.DeshabilitaUsuarioCompania(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando Operación Exitosa if (retorno.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } } } } } //Valida si la operación se realizo correctamente. if (retorno.OperacionExitosa) { //Asigna el valor de estado lectura a la variable de session estatus Session["estatus"] = Pagina.Estatus.Nuevo; //Asigna el valor 0 a la variable de session id_registro Session["id_registro"] = 0; //invoca al método inicializaForma(). inicializaForma(); ucPerfilUsuarioAlta.InicializaPerfilesUsuarioAlta(0, Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtCompania.Text, "ID:", 1, "0"))); } //Muestra un mensaje acorde a la validación de la operación lblError.Text = retorno.Mensaje; break; } //Si la elección del menú en la opción Bitacora case "Bitacora": { //Invoca al método bitacora inicializaBitacora(Session["id_registro"].ToString(), "30", "Usuario"); break; } //Si la elección del menú en la opcion Referencia case "Referencias": { //Invoca al método inicializaReferencia que muestra las observaciones hechas a un registro de TipoPago inicializaReferenciaRegistro(Session["id_registro"].ToString(), "30", ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor.ToString()); break; } //Si la elección del menú en la opcion Sesiones Activas case "Sesiones": { //Validando Estatus el Sesión switch ((Pagina.Estatus)Session["estatus"]) { case Pagina.Estatus.Nuevo: { //Mostrando Excepción ScriptServer.MuestraNotificacion(botonMenu, "No hay Usuario", ScriptServer.NaturalezaNotificacion.Error, ScriptServer.PosicionNotificacion.AbajoDerecha); break; } case Pagina.Estatus.Lectura: case Pagina.Estatus.Edicion: { //Cargando Sesiones Activas cargaSessionesActivas(); //Mostrando Ventana Modal ScriptServer.AlternarVentana(botonMenu, "SesionesActivas", "contenedorVentanaSesionesActivas", "ventanaSesionesActivas"); break; } } break; } //Si la elección del menú en la opcion Archivo case "Archivo": { //Validando Estatus de Sesión switch ((Pagina.Estatus)Session["estatus"]) { case Pagina.Estatus.Lectura: case Pagina.Estatus.Edicion: //Inicializando Archivos inicializaArchivosRegistro(Session["id_registro"].ToString(), "30", "0"); break; default: //Mostrando Excepción ScriptServer.MuestraNotificacion(lkbArchivos, new RetornoOperacion("Debe existir un Usuario"), ScriptServer.PosicionNotificacion.AbajoDerecha); break; } break; } //Si la elección del menú en la opcion Acerca case "Acerca": { break; } //Si la elección del menú en la opcion Ayuda case "Ayuda": { break; } } }
/// <summary> /// Método que inicializa los valores de los controles del formulario Usuario en base a su estatus. /// </summary> private void inicializaValores() { //Valida cada estatus de la página switch ((Pagina.Estatus)Session["estatus"]) { //En caso de que el estado de la página sea nuevo limpia los datos de los controles case Pagina.Estatus.Nuevo: { txtNombre.Text = txtEmail.Text = txtContrasena.Text = txtRepitaContrasena.Text = txtPregunta.Text = txtRespuesta.Text = txtSesiones.Text = txtTiempo.Text = txtVigencia.Text = lblError.Text = ""; //Asigna formato de password a la caja de texto txtContrasena.Attributes["type"] = "password"; txtRepitaContrasena.Attributes["type"] = "password"; txtRespuesta.Attributes["type"] = "password"; break; } //En caso de que el estado de la página sea edicion y lectura, realiza una consulta a la base de datos y obtiene un registro. case Pagina.Estatus.Lectura: case Pagina.Estatus.Edicion: { //Invoca a la clase usuario, y asigna el valor de la variable ssion id_registro al constructor de la clase para obtener un registro. using (SAT_CL.Seguridad.Usuario us = new SAT_CL.Seguridad.Usuario((int)Session["id_registro"])) { //Validando que exista el Usuario if (us.id_usuario != 0) { txtNombre.Text = us.nombre; txtEmail.Text = us.email; txtSesiones.Text = us.sesiones_disponibles.ToString(); txtTiempo.Text = us.tiempo_expiracion.ToString(); txtVigencia.Text = us.dias_vigencia.ToString(); txtPregunta.Text = us.pregunta_secreta; //Deshabilita los controles para su edición. txtContrasena.Enabled = txtRepitaContrasena.Enabled = txtPregunta.Enabled = txtRespuesta.Enabled = false; //Asigna formato de password a la caja de texto txtContrasena.Attributes["type"] = "password"; txtContrasena.Text = "password"; txtRepitaContrasena.Attributes["type"] = "password"; txtRepitaContrasena.Text = "password"; txtRespuesta.Attributes["type"] = "password"; txtRespuesta.Text = "password"; //Inicializando Control ucPerfilUsuarioAlta.InicializaPerfilesUsuarioAlta(Convert.ToInt32(Session["id_registro"]), ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor); //Instanciando Usuario Compania using (SAT_CL.Seguridad.UsuarioCompania uc = new SAT_CL.Seguridad.UsuarioCompania(us.id_usuario, ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) { //Validando que exista el Registro if (uc.id_usuario_compania > 0) { //Asignando Departamento ddlDepartamento.SelectedValue = uc.id_departamento.ToString(); //Instanciando Compania Emisor using (SAT_CL.Global.CompaniaEmisorReceptor cer = new SAT_CL.Global.CompaniaEmisorReceptor(uc.id_compania_emisor_receptor)) { //Validando que Existe la Compania if (cer.id_compania_emisor_receptor > 0) { //Asignando Valor txtCompania.Text = cer.nombre + " ID:" + cer.id_compania_emisor_receptor.ToString(); } else { //Limpiando Control txtCompania.Text = ""; } } } } } } break; } } }