Imports Entidades 'Hacemos referencia a las Entidades de nuestro proyecto"
Imports AccesoDatos 'Hacemos referencia a la Capa de Acceso a Datos"
Public Interface I_USUARIOL
    'Creamos la función Validar Contraseña y enlazamos con la entidad
    Function ValidarContraseña(ByVal ConecX As String, ByVal eUsuarioE As Entidades.UsuarioE) As Boolean
End Interface
Public Class UsuarioL
    Implements I_USUARIOL

    Public Function ValidarContraseña(ConecX As String, eUsuarioE As UsuarioE) As Boolean Implements I_USUARIOL.ValidarContraseña
        Dim Ds_Usuario As DataSet
        Dim xExiste As Integer
        Dim strSP As String = "S_ValidarUsuario" 'Aquí va el nombre del Procedimiento almacenado de nuestro SQL Server
        Try
            'A la Base de datos solamente le vamos a enviar el Nombre de Usuarios
            Ds_Usuario = SqlHelper.ExecuteDataset(ConecX, strSP, eUsuarioE.iNombreUsuario) 'Agregamos las variables de "Entidades" que vamos a usar

            xExiste = Ds_Usuario.Tables(0).Rows.Count 'Verificamos existen datos de nuestras credenciales
            If xExiste <> 0 Then ' Al ubicar nuestro usuario, el registro que obtenemos debe ser mayor a 0
                If Ds_Usuario.Tables(0).Rows(0).Item(2).ToString = eUsuarioE.iContraseña Then 'Aquí vericaremos si la contraseña es igual al que le enviamos, el Item(2) indíca que obtendra el dato de la columna que esta posición 3
                    Return True 'En caso de ser la contraseña correcta, retornaremos el valor de true a nuestra capa presentación
                End If
            Else
                Return False 'En caso de ser la contraseña incorrecta, retornaremos el valor de false a nuestra capa presentación
            End If
            'El motívo por el cual solo se envía el usuario a la base de datos es para evitar los ataques "SQL Inyection"
        Catch ex As Exception
            Throw ex
        End Try
    End Function
End Class
