Public Class ClsUsuariosEnrolar
    Implements IUsuariosEnrolar

    Private conexion As IPrixusConexion

    Public Sub New(conexion As IPrixusConexion)
        Me.conexion = conexion
    End Sub

    Public Function Enrolar(ByVal modelo As DeviceUserData) As Boolean Implements IUsuariosEnrolar.Enrolar
        Dim resultado As Boolean = False
        Try
            ' Logica
            Dim parametros1 = New List(Of SqlClient.SqlParameter) From {New SqlClient.SqlParameter("@idUsuario", modelo.IdUser)}
            Dim bdResult1 = conexion.EjecutarProcedimiento("sp_UsuariosEnrolarEliminar", parametros1)

            For i As Int16 = 0 To 9
                If IsNothing(modelo.Templates(i)) Then Continue For

                Dim parametros2 = New List(Of SqlClient.SqlParameter)() From {
                    New SqlClient.SqlParameter("@idUsuario", modelo.IdUser),
                    New SqlClient.SqlParameter("@fechaEnrolamiento", Date.Now),
                    New SqlClient.SqlParameter("@dedo", i + 1),
                    New SqlClient.SqlParameter("@huella", modelo.Templates(i).Bytes),
                    New SqlClient.SqlParameter("@activo", True),
                    New SqlClient.SqlParameter("@mascara", modelo.EnrolledFingersMask),
                    New SqlClient.SqlParameter("@tasaAceptacion", modelo.FalseAcceptRate),
                    New SqlClient.SqlParameter("@esEquivalente", modelo.IsFeatureSetMatched),
                    New SqlClient.SqlParameter("@esExitoso", modelo.IsEventHandlerSucceeds)
                }

                conexion.EjecutarProcedimiento("sp_UsuariosEnrolar", parametros2)
            Next

            resultado = True
        Catch ex As Exception
            Console.WriteLine()
        End Try

        Return resultado
    End Function
End Class