Public Class ucRecuperarClave
    Inherits ucBase

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub
    Protected Sub btnEnviar_Click(sender As Object, e As EventArgs) Handles btnEnviar.Click
        If captcha.IsValid Then

            Dim Usuario As Usuarios = UsuariosBusinessObject.GetUsuariosByEmail(txtEmail.Text)
            Dim oUsuario As New UsuariosBusinessObject(Usuario)

            If oUsuario.IsNew Then
                CustomMessage("No se encontró usuario registrado con el correo proporcionado", "Notificación de Recuperación de Contraseña")
                Return
            End If

            'SI EL USUARIO NO HA ACTIVADO AUN, SE LO ACTIVA, Y YA EN EL CORREO LE ENVIA EL USUARIO Y CLAVE, NO TIENE QUE RECUPERAR.
            If oUsuario.Entity.estado = 0 Then
                Try
                    Transaction.Begin()

                    oUsuario.Entity.estado = 1
                    'Cambiamos el USERINFO al propio usuario creado
                    Dim userinfo As New UserInfo(oUsuario.Entity.idUsuario, oUsuario.Entity.idUsuario, False)
                    Dim dGenPrincipal As New dGenPrincipal(userinfo)
                    Threading.Thread.CurrentPrincipal = dGenPrincipal

                    Dim msg As New MSG
                    msg = oUsuario.SaveChanges()


                    If msg.EventType = dGen.Library.Entity.MSG.MsgType.Success Then
                        msg = UsuariosBusinessObject.GenerarClaveEnviarCorreo(oUsuario.Entity.idUsuario)
                        If msg.EventType = dGen.Library.Entity.MSG.MsgType.Success Then
                            Transaction.Commit()
                            CustomMessage("Se ha enviado el usuario y clave a su correo electrónico", "USUARIO VÁLIDO")
                            Exit Sub
                        End If
                    Else
                        Transaction.RollBack()
                        CustomMessage(msg, "Error al validar usuario. Intentelo de nuevo por favor!")
                        Exit Sub
                    End If
                Catch ex As Exception
                    Transaction.RollBack()
                    CustomMessage("Error al validar usuario. Intentelo de nuevo por favor!", "Error de validación")
                    Exit Sub
                End Try
            End If

            If oUsuario.RegistrarSolictudRecuperacion().EventType = MSG.MsgType.Success Then
                Response.Redirect("Recuperar2.aspx")
            Else
                CustomMessage("No se pudo enviar el mensaje", "Notificación de Recuperación de Contraseña")
            End If

        End If
    End Sub
End Class