Imports System.Data.Sql

Public Class ClsUsuariosCrear
    Implements IUsuariosCrear

    Private conexion As IPrixusConexion

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

    Public Function Crear(ByVal usuariosModelo As IUsuariosCrearArgumentos, ByRef mensajeError As String) As Boolean Implements IUsuariosCrear.Crear
        Dim resultado As Boolean = False
        mensajeError = ""

        Try
            ' Validaciones

            If usuariosModelo.Nombre = Nothing Then Throw New Exception("Nombre no puede ser nothing o vacio")
            If usuariosModelo.NumeroLegal = Nothing Then Throw New Exception("Número lega no puede ser vacío")
            If usuariosModelo.IdEmpresa = Nothing Then Throw New Exception("Empresa no puede ser vacío")
            If usuariosModelo.Password = Nothing Then Throw New Exception("Debe ingresar contraseña")
            ' If (False) Then Throw New Exception("Mensaje de error")


            'Logica de creación de usuario
            Dim listaParametros As New List(Of SqlClient.SqlParameter) From {
                New SqlClient.SqlParameter("@numeroLegal", usuariosModelo.NumeroLegal),
                New SqlClient.SqlParameter("@pass", usuariosModelo.Password),
                New SqlClient.SqlParameter("@rol", usuariosModelo.Rol),
                New SqlClient.SqlParameter("@nombre", usuariosModelo.Nombre),
                New SqlClient.SqlParameter("@apellidos", usuariosModelo.Apellidos),
                New SqlClient.SqlParameter("@idEmpresa", usuariosModelo.IdEmpresa),
                New SqlClient.SqlParameter("@inicioContrato", usuariosModelo.InicioContrato),
                New SqlClient.SqlParameter("@finContrato", usuariosModelo.FinContrato),
                New SqlClient.SqlParameter("@mailPersonal", usuariosModelo.MailPersonal),
                New SqlClient.SqlParameter("@mailCorporativo", usuariosModelo.MailCorporativo),
                New SqlClient.SqlParameter("@movilPersonal", usuariosModelo.MovilPersonal),
                New SqlClient.SqlParameter("@movilCorporativo", usuariosModelo.MovilCorporativo),
                New SqlClient.SqlParameter("@idAlternativo", CInt(usuariosModelo.IdAlternativo))}


            resultado = conexion.EjecutarProcedimiento("sp_usuariosCrear", listaParametros, mensajeError)

        Catch ex As Exception
            mensajeError += vbNewLine + ex.Message
        Finally
            conexion.CerrarBD()
        End Try

        Return resultado
    End Function



End Class