53 lines
1.8 KiB
VB.net

Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.EDMI.API.Options
Imports DigitalData.Modules.Logging
Namespace Modules.IDB
Public Class UpdateFile
Inherits BaseMethod
Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel)
MyBase.New(pLogConfig, pChannel)
End Sub
Public Async Function RunAsync(pFilePath As String, pObjectId As Long, Optional pOptions As UpdateFileOptions = Nothing) As Task(Of Long)
Try
' Set default options
If pOptions Is Nothing Then
pOptions = New UpdateFileOptions()
End If
' Check if file exists
If IO.File.Exists(pFilePath) = False Then
Throw New IO.FileNotFoundException("Path does not exist")
End If
' Importing the file now
Dim oFileProperties = Helpers.GetFileProperties(pFilePath, Date.Now)
Dim oUpdateFileResponse = Await Channel.UpdateFileAsync(New UpdateFileRequest With {
.File = oFileProperties,
.ObjectId = pObjectId,
.CreateNewVersion = pOptions.CreateNewFileVersion,
.User = New UserState With {
.Language = pOptions.Language,
.UserName = pOptions.Username
}
})
If oUpdateFileResponse.OK = False Then
Throw New ApplicationException("Could not Import File Contents!")
End If
Return oUpdateFileResponse.ObjectId
Catch ex As Exception
Logger.Error(ex)
Return Constants.INVALID_OBEJCT_ID
End Try
End Function
End Class
End Namespace