49 lines
1.9 KiB
VB.net
49 lines
1.9 KiB
VB.net
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Filesystem
|
|
|
|
Namespace Modules.IDB
|
|
Public Class NewFile
|
|
Inherits BaseMethod
|
|
|
|
Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel)
|
|
MyBase.New(pLogConfig, pChannel)
|
|
End Sub
|
|
|
|
Public Async Function RunAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pBusinessEntity As String, Optional pOptions As Options.NewFileOptions = Nothing) As Task(Of Long)
|
|
Try
|
|
' Set default options
|
|
If pOptions Is Nothing Then
|
|
pOptions = New Options.NewFileOptions()
|
|
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, pOptions.DateImported)
|
|
Dim oFileImportResponse = Await Channel.NewFileAsync(New NewFileRequest With {
|
|
.BusinessEntity = pBusinessEntity,
|
|
.File = oFileProperties,
|
|
.KindType = pObjectKind,
|
|
.StoreName = pObjectStoreName,
|
|
.User = New UserState With {
|
|
.Language = pOptions.Language,
|
|
.UserName = pOptions.Username
|
|
}
|
|
})
|
|
|
|
If oFileImportResponse.OK = False Then
|
|
Throw New ApplicationException("Could not Import File Contents!")
|
|
End If
|
|
|
|
Return oFileImportResponse.ObjectId
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return Constants.INVALID_OBEJCT_ID
|
|
End Try
|
|
End Function
|
|
End Class
|
|
End Namespace |