Public Class ucActivar
    Inherits ucBase

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim id_S As String
        Dim id As Integer
        If Not IsPostBack Then

            id_S = Request.QueryString("id")
            If String.IsNullOrEmpty(id_S) Then
                id = 0
            Else
                id = CInt(id_S)
            End If




            Dim oUsuario As New UsuariosBusinessObject(id)

            If oUsuario.IsNew Then
                CustomMessage("No se encuentra el usuario en el sistema. Puede que haya transcurrido mucho tiempo, favor ingresar sus datos nuevamente en Registro de Usuario", "Usuario no identificado")
                Exit Sub
            End If

            If oUsuario.Entity.estado = 1 Then
                CustomMessage("Este usuario ya se encuentra activado. Favor ingresar en IDENTIFICACIÓN", "Usuario ya activado")
            Else
                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")
                        End If
                    Else
                        Transaction.RollBack()
                        CustomMessage(msg, "Error al validar usuario. Intentelo de nuevo por favor!")
                    End If
                Catch ex As Exception
                    Transaction.RollBack()
                    CustomMessage("Error al validar usuario. Intentelo de nuevo por favor!", "Error de validación")
                End Try
            End If

        End If
    End Sub

End Class