Exemplo n.º 1
0
        protected void AddUserButton_Click(object sender, EventArgs e)
        {
            string passwordmd5;

            lMessage.Text = "";
            int modo            = 0;
            int idzonaventa     = 0;
            int idusergerente   = 0;
            int iduserejecutivo = 0;

            try
            {
                UsuarioBehaivor NuevoUsuarioItem = new UsuarioBehaivor();
                NuevoUsuarioItem.Connection = ConectionBD;
                List <UsuarioDatos> LstUser = null;
                AddUserButton.Visible = true;
                EndButton.Visible     = false;

                /***********************************************************************************
                 *  Verificar que el correo con que se registra el usuario no exista
                 * ********************************************************************************/
                modo    = 2; // Modo para revisar correo
                LstUser = NuevoUsuarioItem.CN_fn_UsuarioValidaCorreoSel(temail.Text, "-", 2);
                if (LstUser.Count > 0 && LstUser[0].UserId > -1)
                {
                    lMessage.Visible            = true;
                    lMessage2.Text              = "Esta direccion de correo electronico ya esta en uso, registre otra por favor";
                    Session["resultadoProceso"] = "2";
                    return;
                }
                else
                {
                    lMessage.Text    = "Adelante";
                    lMessage.Visible = false;
                }

                /**********************************************************************************************************************
                 * Verificar información del perfil de usuario para IdZonaVentas de usuario y relación gerente - ejecutivo en su caso
                 * *******************************************************************************************************************/
                if (Convert.ToInt32(cmbPerfil.SelectedValue) == 3)          // Perfil Gerente
                {
                    idzonaventa = Convert.ToInt32(cmbZonaVentas.SelectedValue);
                }
                else if (Convert.ToInt32(cmbPerfil.SelectedValue) == 4)     // Perfil Ejecutivo
                {
                    modo    = 5;
                    LstUser = NuevoUsuarioItem.CN_fn_ObtenerInformacionGte(Convert.ToInt32(cmbGerenteZona.SelectedValue), modo);
                    if (LstUser.Count > 0)
                    {
                        idzonaventa   = LstUser[0].IdZonaVenta;
                        idusergerente = LstUser[0].UserId;
                    }
                }

                /***********************************************************************************
                 *  Ingresar datos del usuario nuevo
                 * ********************************************************************************/
                DateTime bday        = DateTime.Now;
                string   phone       = "";
                string   numempleado = "";
                int      idkam       = 0;
                modo    = 1; // Modo para ingresar usuario nuevo en el SP
                LstUser = NuevoUsuarioItem.CN_fn_UsuariosInsert(-1, numempleado, temail.Text, tfirstname.Text, tlastname.Text, bday, Convert.ToInt32(cmbPerfil.SelectedValue), Convert.ToInt32(cmbEstatus.SelectedValue), idkam, idzonaventa, phone, 1);

                if (LstUser.Count > 0)
                {
                    Id = LstUser[0].UserId;
                }

                // si insertó, generar password
                Random pass = new Random(100000);
                int    p    = pass.Next(100, 100000);
                string pwd;
                pwd = CreateRandomPassword(6);
                /*Convierte el password en MD5 */
                using (MD5 md5Hash = MD5.Create())
                    passwordmd5 = GetMd5Hash(md5Hash, pwd);


                modo = 6; // Actualizar email and password en bd
                NuevoUsuarioItem.CN_fn_UsuariosLoginSIUD(Id, temail.Text, passwordmd5, modo);


                /***************************************************************************************************************
                 * Si el usuario registrado fue ejecutivo, ingresar relación con gerente
                 * ************************************************************************************************************/
                if (Convert.ToInt32(cmbPerfil.SelectedValue) == 4)     // Perfil Ejecutivo
                {
                    modo            = 1;
                    iduserejecutivo = Id;

                    UsuarioBehaivor GerenteEjecutivoItem = new UsuarioBehaivor();
                    GerenteEjecutivoItem.Connection = ConectionBD;

                    GerenteEjecutivoItem.CN_fn_GenerarRelacionGteEjecutivo(idusergerente, iduserejecutivo, idzonaventa, modo);
                }


                /***************************************************************************************************************
                 * Pantalla de Usuario Registrado
                 * ************************************************************************************************************/
                cmbPerfil.Enabled     = false;
                temail.Enabled        = false;
                tfirstname.Enabled    = false;
                tlastname.Enabled     = false;
                cmbEstatus.Enabled    = false;
                CancelButton.Visible  = false;
                EndButton.Visible     = true;
                AddUserButton.Visible = false;

                Session["resultadoProceso"] = "1";
                lMessage.Visible            = true;
                lMessage.Text = "Usuario registrado con éxito. Un correo fue enviado al usuario para informarle del registro.";

                /***** Ingresar acción en Bitácora ***/
                Bitacorear.Guardar(ID_USUARIO_SESSION, Convert.ToInt32(Session["idrol"]), "AgregarUsuario.aspx", "Registrar", "Usuario: [ " + temail.Text + "] ", ConectionBD);

                //Registrar en notificación el evento y obtener ID
                // Registro nuevo usuario: 2
                int tipoNotificacion = 2;
                Inboxfn.RegistrarNotificacion("Registro Nuevo Usuario", "Bienvenido a Construnet Advance: " + tfirstname.Text + " " + tlastname.Text, tipoNotificacion, ConectionBD);
                // Obtener último ID Notificación registrado
                int IDLastNotification = 0;
                IDLastNotification = Inboxfn.ObtenerIDNotificacion(ConectionBD);
                //Envio a inbox x Usuario
                Inboxfn.RegistrarNotificacionxUsuario(ID_USUARIO_SESSION, IDLastNotification, 1, ConectionBD);

                /***** Texto correo ***/
                string textomail = "";
                if (Convert.ToInt32(cmbPerfil.SelectedValue) == 6)
                {
                    textomail = TextoCorreos.RegistroNuevoUsuarioSCExterno(tfirstname.Text, temail.Text, pwd);
                }
                else
                {
                    textomail = TextoCorreos.RegistroNuevoUsuario(tfirstname.Text, temail.Text, pwd);
                }

                if (cbnotificar.Checked)
                {
                    /***** Enviar correo a Participantes ***/
                    EnviarCorreo enviarCorreo;
                    enviarCorreo = new EnviarCorreo();
                    enviarCorreo.SendEmail(temail.Text, "Bienvenido a Construnet Advance", textomail);
                }
            }
            catch (Exception ex)
            {
                mensajeErrolbl.Visible   = true;
                mensajeErrolbl.ForeColor = System.Drawing.Color.Red;
                mensajeErrolbl.Text      = "!Error / Ingresar usuario: " + ex.Message + "!";
            }
        }
Exemplo n.º 2
0
        protected void UpdateButton_Click(object sender, EventArgs e)
        {
            string passwordmd5;

            lMessage.Text = "";
            int    modo          = 0;
            string nombreusuario = "";
            string emailusuario  = "";

            try
            {
                UsuarioBehaivor NuevoUsuarioItem = new UsuarioBehaivor();
                NuevoUsuarioItem.Connection = ConectionBD;

                EndButton.Visible    = true;
                UpdateButton.Visible = false;

                // Modificar password
                /*Convierte el password en MD5 */
                using (MD5 md5Hash = MD5.Create())
                    passwordmd5 = GetMd5Hash(md5Hash, tpassword.Text);


                List <UsuarioDatos> ListUsuario = NuevoUsuarioItem.CN_fn_UsuariosSel(Id);
                if (ListUsuario.Count > 0)
                {
                    nombreusuario = ListUsuario[0].NombreCompleto;
                    emailusuario  = ListUsuario[0].email;
                }

                modo = 4; // Actualizar el password en bd
                NuevoUsuarioItem.CN_fn_UsuariosLoginSIUD(Id, "a", passwordmd5, modo);

                /***************************************************************************************************************
                 * Pantalla de Password Registrado
                 * ************************************************************************************************************/
                tpassword.Text        = "";
                tconfirmpassword.Text = "";
                CancelButton.Visible  = false;
                EndButton.Visible     = true;
                UpdateButton.Visible  = false;

                Session["resultadoProceso"] = "1";
                lMessage.Visible            = true;
                lMessage.Text = "Password actualizado con éxito. Un correo fue enviado al usuario para informarle del cambio.";

                /***** Ingresar acción en Bitácora ***/
                Bitacorear.Guardar(ID_USUARIO_SESSION, Convert.ToInt32(Session["idrol"]), "ActualizarPassword.aspx", "Actualizar", "Password:  [ " + emailusuario + " ] ", ConectionBD);

                /***** Texto correo Edición Usuario ***/
                string textomail = "";
                textomail = TextoCorreos.ActualizarPassword(nombreusuario);

                //Registrar en notificación el evento y obtener ID
                // TipoNotificacion Passord: 4
                int tipoNotificacion = 4;
                Inboxfn.RegistrarNotificacion("Actualización de la contraseña", "Actualización de password de la cuenta: " + emailusuario, tipoNotificacion, ConectionBD);
                // Obtener último ID Notificación registrado
                int IDLastNotification = 0;
                IDLastNotification = Inboxfn.ObtenerIDNotificacion(ConectionBD);
                //Envio a inbox x Usuario
                Inboxfn.RegistrarNotificacionxUsuario(ID_USUARIO_SESSION, IDLastNotification, 1, ConectionBD);


                /***** Enviar correo a Participantes ***/
                EnviarCorreo enviarCorreo;
                enviarCorreo = new EnviarCorreo();
                enviarCorreo.SendEmail(emailusuario, "Construnet Advance: Actualización de contraseña", textomail);
            }
            catch (Exception ex)
            {
                throw ex;
                //ShowMessageClient(ex.Message);
            }
        }