Imports PrixusUtiles

Public Class ClsUsuariosModificar
    Implements IUsuariosModificar

    Private conexion As IPrixusConexion

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

    Public Function Modificar(modeloUsuarioModificar As IUsuariosModificarArgumentos, ByRef mensajeError As String) As Boolean Implements IUsuariosModificar.Modificar

        Dim resultado As Boolean = False
        mensajeError = ""

        Try
            ' Validaciones
            If modeloUsuarioModificar.Id = Nothing Then Throw New Exception("Id no puede ser nothing o vacio")
            If modeloUsuarioModificar.Nombre = Nothing Then Throw New Exception("Nombre no puede ser nothing o vacio")
            If modeloUsuarioModificar.NumeroLegal = Nothing Then Throw New Exception("Número legal no puede ser vacío")
            ' If (False) Then Throw New Exception("Mensaje de error")


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



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


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

        Return resultado


    End Function



End Class
