53 lines
1.8 KiB
VB.net
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 |