diff --git a/GUIs.ZooFlow/ClassIDBData.vb b/GUIs.ZooFlow/ClassIDBData.vb
index b7e77477..25f11204 100644
--- a/GUIs.ZooFlow/ClassIDBData.vb
+++ b/GUIs.ZooFlow/ClassIDBData.vb
@@ -144,11 +144,11 @@ Public Class ClassIDBData
oOldAttributeResult = GetVariableValue(pAttributeName, oIDBTyp)
oTypeOldResult = oOldAttributeResult.GetType.ToString
If oTypeOldResult = "System.Data.DataTable" Then
- Dim myOldValues As DataTable = oOldAttributeResult
- If myOldValues.Rows.Count > 1 Then
+ Dim oOldValues As DataTable = oOldAttributeResult
+ If oOldValues.Rows.Count > 1 Then
'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues
- For Each oOldValueRow As DataRow In myOldValues.Rows
+ For Each oOldValueRow As DataRow In oOldValues.Rows
Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
Dim oInfo1 = $"Checking oldValue[{oOldValueRow.Item(0)}] vs NewValue [{oNewValueRow.Item(1)}]"
diff --git a/GUIs.ZooFlow/ClassInit.vb b/GUIs.ZooFlow/ClassInit.vb
index da20dee9..cd73e331 100644
--- a/GUIs.ZooFlow/ClassInit.vb
+++ b/GUIs.ZooFlow/ClassInit.vb
@@ -45,12 +45,12 @@ Public Class ClassInit
' === Init Schritte definieren
_Loader.AddStep("Initializing Database (1/2)", AddressOf InitializeDatabase, True)
- _Loader.AddStep("Initializing Service", AddressOf InitializeService, True)
+ _Loader.AddStep("Initializing EDMI Service", AddressOf InitializeService, True)
_Loader.AddStep("Initializing Database (2/2)", AddressOf InitializeDatabaseWithFallback, True)
- _Loader.AddStep("Initializing User..", AddressOf InitializeUser, True)
- _Loader.AddStep("Initializing Language..", AddressOf InitializeLanguage, False)
- _Loader.AddStep("Loading 3rd-party licenses..", AddressOf Initialize3rdParty, False)
- _Loader.AddStep("Loading Basic Configs..", AddressOf InitBasicData, False)
+ _Loader.AddStep("Initializing User", AddressOf InitializeUser, True)
+ _Loader.AddStep("Initializing Language", AddressOf InitializeLanguage, False)
+ _Loader.AddStep("Initializing 3rd-party licenses", AddressOf Initialize3rdParty, False)
+ _Loader.AddStep("Initializing Basic Config", AddressOf InitBasicData, False)
' === Init Schritte definieren
AddHandler _Loader.ProgressChanged, AddressOf ProgressChanged
@@ -156,8 +156,7 @@ Public Class ClassInit
Private Sub Initialize3rdParty(MyApplication As My.MyApplication)
Try
Dim oSql = "Select LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'"
- Dim oDatatable As DataTable = _DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_3RD_PARTY_MODULES", "", "")
-
+ Dim oDatatable As DataTable = My.DatabaseECM.GetDatatable(oSql)
If oDatatable.Rows.Count = 0 Then
Throw New InitException("Konfiguration konnte nicht geladen werden!")
diff --git a/GUIs.ZooFlow/ClipboardWatcher/ClassProfileLoader.vb b/GUIs.ZooFlow/ClipboardWatcher/ClassProfileLoader.vb
index b908d151..f6f4643c 100644
--- a/GUIs.ZooFlow/ClipboardWatcher/ClassProfileLoader.vb
+++ b/GUIs.ZooFlow/ClipboardWatcher/ClassProfileLoader.vb
@@ -1,15 +1,16 @@
-Imports DigitalData.Modules.Logging
+Imports DigitalData.Modules.EDMI.API
+Imports DigitalData.Modules.Logging
Namespace ClipboardWatcher
Public Class ClassProfileLoader
Private ReadOnly LogConfig As LogConfig
Private ReadOnly Logger As Logger
- Private Database As ClassDataASorDB
+ Private ReadOnly Database As DatabaseWithFallback
- Public Sub New(LogConfig As LogConfig, AppServerOrDB As ClassDataASorDB)
+ Public Sub New(LogConfig As LogConfig, Database As DatabaseWithFallback)
Me.LogConfig = LogConfig
Me.Logger = LogConfig.GetLogger()
- Me.Database = AppServerOrDB
+ Me.Database = Database
End Sub
Public Function LoadProfiles() As Boolean
@@ -22,10 +23,10 @@ Namespace ClipboardWatcher
Dim oWindowSQL As String = $"SELECT DISTINCT T.* FROM VWCW_PROFILE_REL_WINDOW T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
Dim oControlSQL As String = $"SELECT DISTINCT T.* FROM VWCW_PROFILE_REL_CONTROL T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
- Dim oUserProfiles = Database.GetDatatable("DD_ECM", oProfileSQL, "VWCW_USER_PROFILE", "", "", "DB")
- Dim oProfileProcesses = Database.GetDatatable("DD_ECM", oProcessSQL, "TBCW_PROFILE_PROCESS", "", "", "DB")
- Dim oProfileWindows = Database.GetDatatable("DD_ECM", oWindowSQL, "VWCW_PROFILE_REL_WINDOW", "", "", "DB")
- Dim oProfileControls = Database.GetDatatable("DD_ECM", oControlSQL, "VWCW_PROFILE_REL_CONTROL", "", "", "DB")
+ Dim oUserProfiles = Database.GetDatatable("VWCW_USER_PROFILE", oProfileSQL, Constants.DatabaseType.ECM)
+ Dim oProfileProcesses = Database.GetDatatable("VWCW_PROFILE_REL_WINDOW", oProcessSQL, Constants.DatabaseType.ECM)
+ Dim oProfileWindows = Database.GetDatatable("VWCW_PROFILE_REL_WINDOW", oWindowSQL, Constants.DatabaseType.ECM)
+ Dim oProfileControls = Database.GetDatatable("VWCW_PROFILE_REL_CONTROL", oControlSQL, Constants.DatabaseType.ECM)
My.Application.ClipboardWatcher.UserProfiles = oUserProfiles
My.Application.ClipboardWatcher.ProfileProcesses = oProfileProcesses
diff --git a/GUIs.ZooFlow/frmFlowForm.vb b/GUIs.ZooFlow/frmFlowForm.vb
index 1c780955..e981e38e 100644
--- a/GUIs.ZooFlow/frmFlowForm.vb
+++ b/GUIs.ZooFlow/frmFlowForm.vb
@@ -247,7 +247,7 @@ Public Class frmFlowForm
AddHandler HotkeyClass.HotKeyPressed, AddressOf HotkeyClass_HotKeyPressed
- ProfileLoader = New ClassProfileLoader(My.LogConfig, AppServerOrDB)
+ ProfileLoader = New ClassProfileLoader(My.LogConfig, My.Database)
ProfileLoader.LoadProfiles()
Catch ex As Exception
ShowErrorMessage(ex)
diff --git a/GUIs.ZooFlow/frmtest.vb b/GUIs.ZooFlow/frmtest.vb
index 0ca0bb49..3faa371e 100644
--- a/GUIs.ZooFlow/frmtest.vb
+++ b/GUIs.ZooFlow/frmtest.vb
@@ -101,7 +101,7 @@ Public Class frmtest
DateTimePicker1.Value,
cmbObjectStoreType.Text,
"DEFAULT",
- New Client.ImportFileOptions With {
+ New Client.NewFileOptions With {
.KeepExtension = True
}
)
diff --git a/Modules.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb
index bc965558..85362502 100644
--- a/Modules.EDMIAPI/Client.vb
+++ b/Modules.EDMIAPI/Client.vb
@@ -1,18 +1,21 @@
-Imports DigitalData.Modules.Logging
+Imports System.IO
+Imports System.ServiceModel
+Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.EDMI.API.Rights
-Imports System.ServiceModel
-Imports System.IO
+Imports DigitalData.Modules.Language.Utils
+Imports DigitalData.Modules.Logging
Public Class Client
Private Const INVALID_OBEJCT_ID As Long = 0
Private Const KIND_TYPE_DOC = "DOC"
- Public Const DEFAULT_SERVICE_PORT = 9000
-
Private ReadOnly _logger As Logger
Private ReadOnly _channelFactory As ChannelFactory(Of IEDMIServiceChannel)
Private ReadOnly _IPAddressServer As String
+
+
+ Private _dummy_table_attributes As DataTable
Private _channel As IEDMIServiceChannel
Public Class StreamedFile
@@ -105,13 +108,6 @@ Public Class Client
End Try
End Function
- '''
- ''' Import options for NewFileAsync. Contains default values for all options
- '''
- Public Class ImportFileOptions
- Public KeepExtension As Boolean = True
- End Class
-
'''
''' TODO: Creates a new object
'''
@@ -120,6 +116,15 @@ Public Class Client
Throw New NotImplementedException()
End Function
+ '''
+ ''' Import options for NewFileAsync. Contains default values for all options
+ '''
+ Public Class NewFileOptions
+ Public KeepExtension As Boolean = True
+ Public Username As String = String.Empty
+ Public Language As String = String.Empty
+ End Class
+
'''
''' Imports a file from a filepath, creating a IDB ObjectId and Filesystem Object
'''
@@ -132,8 +137,14 @@ Public Class Client
''' When local filepath was not found
''' When there was a error in the Service
''' The ObjectId of the newly generated filesystem object
- Public Async Function NewFileAsync(pFilePath As String, pAddedWho As String, pAddedWhen As Date, pObjectStoreType As String, pBusinessEntity As String, pImportOptions As ImportFileOptions) As Task(Of Long)
+ Public Async Function NewFileAsync(pFilePath As String, pAddedWho As String, pAddedWhen As Date, pObjectStoreType As String, pBusinessEntity As String, Optional pImportOptions As NewFileOptions = Nothing) As Task(Of Long)
Try
+ ' Set default options
+ If pImportOptions Is Nothing Then
+ pImportOptions = New NewFileOptions()
+ End If
+
+ ' Check if file exists
If File.Exists(pFilePath) = False Then
Throw New FileNotFoundException("ImportFileAsync: Path does not exist")
End If
@@ -141,6 +152,7 @@ Public Class Client
Dim oFileInfo As New FileInfo(pFilePath)
Dim oExtension As String = oFileInfo.Extension
+ ' Creating new ObjectId
Dim oObjectIdResponse = Await _channel.NewObjectIdAsync(New NewObjectIdRequest With {
.BusinessEntity = pBusinessEntity,
.KindType = KIND_TYPE_DOC,
@@ -151,6 +163,7 @@ Public Class Client
Throw New ApplicationException("ImportFileAsync: Could not get ObjectId")
End If
+ ' Create new FileObject for ObjectId
Dim oFilePathResponse = Await _channel.NewFileObjectAsync(New NewFileObjectRequest With {
.DateImported = pAddedWhen,
.Extension = oExtension,
@@ -163,6 +176,7 @@ Public Class Client
Throw New ApplicationException("ImportFileAsync: Could not get FileObject Path")
End If
+ ' Importing the file now
Using oFileStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read)
Using oMemoryStream As New MemoryStream()
oFileStream.CopyTo(oMemoryStream)
@@ -189,87 +203,265 @@ Public Class Client
End Try
End Function
- Public Function CreateObjectId(pKindType As String, pWho As String, pBusinessEntity As String) As Long
- Try
- Dim oResponse = _channel.NewObjectId(New NewObjectIdRequest With {
- .KindType = pKindType,
- .BusinessEntity = pBusinessEntity,
- .Who = pWho
- })
- Return oResponse.ObjectId
- Catch ex As Exception
- _logger.Error(ex)
- Throw ex
- End Try
- End Function
+ Public Class SetVariableValueOptions
+ Public CheckDeleted As Boolean = False
+ Public Username As String = String.Empty
+ Public Language As String = String.Empty
+ End Class
- Public Function CreateFileStoreObject(pObjectId As Long, pStoreType As String, pDate As String, pExtension As String, pKeepExtension As String) As String
+ '''
+ ''' Sets a value to an attribute
+ '''
+ ''' IDB ObjectId
+ ''' Name of the attribute
+ ''' The type of Attribute
+ '''
+ '''
+ '''
+ Public Function SetVariableValue(pObjectId As Long, pAttributeName As String, pAttributeType As AttributeType, pValue As Object, Optional pOptions As SetVariableValueOptions = Nothing) As Boolean
Try
- ' Remove dot in Extension
- If pExtension.StartsWith(".") Then
- pExtension = pExtension.Substring(1)
+ ' Set default options
+ If pOptions Is Nothing Then
+ pOptions = New SetVariableValueOptions()
End If
- Dim oArgs As New NewFileObjectRequest With {
- .ObjectId = pObjectId,
- .StoreType = pStoreType,
- .DateImported = pDate,
- .Extension = pExtension,
- .KeepExtension = pKeepExtension
- }
- Dim oResponse = _channel.NewFileObject(oArgs)
- Return oResponse.FileObjectPath
- Catch ex As Exception
- _logger.Error(ex)
- Throw ex
- End Try
- End Function
+ Dim oLanguage = NotNull(pOptions.Language, GetUserLanguage())
+ Dim oUsername = NotNull(pOptions.Username, Environment.UserName)
- Public Async Function ImportFileObjectAsync(pContent As Byte(), pWho As String, pObjectId As Long, pObjectStoreType As String, pFileObjectPath As String) As Task(Of Boolean)
- Try
- Dim oData As New ImportFileIntoFileObjectRequest() With {
- .Contents = pContent,
- .Who = pWho,
- .FilePath = pFileObjectPath,
- .ObjectId = pObjectId,
- .ObjectStoreType = pObjectStoreType
- }
+ Try
+ Dim oResponse = _channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
+ If oResponse.Exists = False Then
+ Return False
+ End If
+
+ Catch ex As Exception
+ _logger.Error(ex)
+ Return False
+ End Try
+
+ ' TODO: Check if Attribute exists
+
+ Dim oType = pValue.GetType.Name
+
+ If oType = GetType(DataTable).Name Then
+ Dim oValueTable As DataTable = pValue
+ Dim oCurrentValue As Object
+ Dim oCurrentValueType As String
+
+ If pOptions.CheckDeleted = True Then
+ Dim oOptions As New GetVariableValueOptions With {
+ .Language = oLanguage,
+ .Username = oUsername
+ }
+
+ ' Get current value
+ oCurrentValue = GetVariableValue(pObjectId, pAttributeName, pAttributeType, oOptions)
+
+ ' Get current type
+ oCurrentValueType = oCurrentValue.GetType.Name
+
+ ' If current value is datatable
+ If oCurrentValueType = GetType(DataTable).Name Then
+
+ ' Convert value to Datatable
+ Dim oCurrentTable As DataTable = oCurrentValue
+
+ If oCurrentTable.Rows.Count > 1 Then
+
+ 'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues
+ For Each oRow As DataRow In oCurrentTable.Rows
+ Dim oExists As Boolean = False
+ For Each oNewValueRow As DataRow In oValueTable.Rows
+ Dim oInfo = $"Checking oldValue[{oRow.Item(0)}] vs NewValue [{oNewValueRow.Item(1)}]"
+ If oNewValueRow.Item(1).ToString.ToUpper = oRow.Item(0).ToString.ToUpper Then
+ oExists = True
+ Exit For
+ End If
+ Next
+
+ If oExists = False Then
+ _logger.Debug($"Value [{oRow.Item(0)}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!")
+ DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oRow.Item(0))
+ End If
+
+ Next
+ End If
+ Else
+ If oValueTable.Rows.Count > 1 Then
+ Dim oExists As Boolean = False
+ For Each oNewValueRow As DataRow In oValueTable.Rows
+ _logger.Debug($"Checking oldValue[{oCurrentValue}] vs NewValue [{oNewValueRow.Item(1)}]")
+
+ If oNewValueRow.Item(1).ToString.ToUpper = oCurrentValue.ToString.ToUpper Then
+ oExists = True
+ Exit For
+
+ End If
+
+ Next
+ If oExists = False Then
+ _logger.Debug($"Value [{oCurrentValue}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!")
+ DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue)
+ End If
+
+ Else
+ _logger.Debug($"Value [{oCurrentValue}] of Attribute [{pAttributeName}] obviously was updated during runtime - will be deleted!")
+ DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue)
+
+ End If
+
+ End If
+
+ End If
+
+ For Each oNewValueRow As DataRow In oValueTable.Rows
+ Dim oSuccess As Boolean = False
+ Dim oSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT
+ EXEC PRIDB_NEW_OBJ_DATA({pObjectId}, '{pAttributeName}', '{oUsername}', '{oNewValueRow.Item(1)}', '{oLanguage}', 0, @OMD_ID = @NEW_OBJ_MD_ID OUTPUT)"
+
+ Dim oResult = _channel.ExecuteNonQuery_MSSQL_IDB(oSQL)
+
+ If Not oResult.OK Then
+ Return False
+ End If
+ Next
+ Return True
+ Else
+ Dim oSql = $"DECLARE @NEW_OBJ_MD_ID BIGINT
+ EXEC PRIDB_NEW_OBJ_DATA({pObjectId}, '{pAttributeName}', '{oUsername}', '{pValue}', '{oLanguage}', 0, @OMD_ID = @NEW_OBJ_MD_ID OUTPUT)"
+
+ Dim oResult = _channel.ExecuteNonQuery_MSSQL_IDB(oSql)
+
+ Return oResult.OK
+ End If
- Dim oResponse = Await _channel.ImportFileIntoFileObjectAsync(oData)
- Return oResponse.Result
Catch ex As Exception
_logger.Error(ex)
Return False
End Try
End Function
- Public Async Function GetFileByObjectIdAsync(ObjectId As Long) As Task(Of StreamedFile)
- Try
- Dim oData As New DocumentStreamRequest() With {.ObjectId = ObjectId}
- Dim oResponse As DocumentStreamResponse = Await _channel.GetFileByObjectIdAsync(oData)
- Dim oMemoryStream As New MemoryStream()
- oResponse.FileContents.CopyTo(oMemoryStream)
- oMemoryStream.Position = 0
+ Public Class GetVariableValueOptions
+ Public FromIDB As Boolean = False
+ Public Username As String = String.Empty
+ Public Language As String = String.Empty
+ End Class
+
+ Public Function GetVariableValue(pObjectId As Long, pAttributeName As String, pAttributeType As AttributeType, Optional pOptions As GetVariableValueOptions = Nothing) As Object
+ If pOptions Is Nothing Then
+ pOptions = New GetVariableValueOptions()
+ End If
+
+ Dim oLanguage = NotNull(pOptions.Language, GetUserLanguage())
+ Dim oUsername = NotNull(pOptions.Username, Environment.UserName)
+
+ ' Check if ObjectId exists
+ Try
+ Dim oResponse = _channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
+ If oResponse.Exists = False Then
+ Return Nothing
+ End If
- Return New StreamedFile() With {
- .Stream = oMemoryStream,
- .FileName = oResponse.FileName
- }
Catch ex As Exception
_logger.Error(ex)
- Throw ex
+ Return Nothing
+ End Try
+
+ ' Get Attributes and Values from Database
+ Dim oTable As DataTable
+
+ Try
+ Dim oResult As TableResult = _channel.ReturnDatatable_MSSQL_IDB($"EXEC [PRIDB_GET_VALUE_DT]({pObjectId}, '{oLanguage}')")
+
+ If oResult.OK = False Then
+ Throw New ApplicationException(oResult.ErrorMessage)
+ End If
+
+ If oResult.Table Is Nothing OrElse oResult.Table.Rows.Count = 0 Then
+ Return Nothing
+ End If
+
+ oTable = oResult.Table
+ Catch ex As Exception
+ _logger.Error(ex)
+ Return Nothing
+ End Try
+
+ ' TODO: Check if Attribute exists & REfactor
+
+
+
+ Try
+ Dim oVectorAttribute As Boolean = False
+ Select Case pAttributeType
+ Case AttributeType.VectorInteger
+ oVectorAttribute = True
+ Case AttributeType.VectorString
+ oVectorAttribute = True
+ Case Else
+ oVectorAttribute = False
+ End Select
+
+ Dim oAttributeValue As Object = Nothing
+
+ If Not IsNothing(_dummy_table_attributes) Then
+ If oVectorAttribute = True And _dummy_table_attributes.Rows.Count = 1 And pOptions.FromIDB = False Then
+ Try
+ If pAttributeName = "IDBCreatedWhen" Then
+ pAttributeName = "ADDED_WHEN"
+ ElseIf pAttributeName = "IDBCreatedWho" Then
+ pAttributeName = "ADDED_WHO"
+ ElseIf pAttributeName = "IDBChangedWhen" Then
+ pAttributeName = "CHANGED_WHEN"
+ ElseIf pAttributeName = "IDBChangedWho" Then
+ pAttributeName = "CHANGED_WHO"
+ End If
+
+ oAttributeValue = _dummy_table_attributes.Rows(0).Item(pAttributeName)
+ Catch ex As Exception
+ _logger.Debug($"Error getting Attribute from IDB_DT_DOC_DATA: {ex.Message}")
+ End Try
+
+ End If
+ End If
+
+ If Not IsNothing(oAttributeValue) Then
+ Return oAttributeValue
+ Else
+ _logger.Debug($"oAttributeValue for Attribute [{pAttributeName}] is so far nothing..Now trying FNIDB_PM_GET_VARIABLE_VALUE ")
+ End If
+ Dim oFNSQL = $"SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] ({pObjectId},'{pAttributeName}','{oLanguage}',CONVERT(BIT,'0'))"
+ Dim oDatatable As TableResult = _channel.ReturnDatatable_MSSQL_IDB(oFNSQL)
+
+ If oDatatable.OK = False Then
+ Throw New ApplicationException(oDatatable.ErrorMessage)
+ End If
+
+ If oDatatable.Table.Rows.Count = 1 Then
+ oAttributeValue = oDatatable.Table.Rows.Item(0).Item(0)
+ End If
+ Return oAttributeValue
+
+ Catch ex As Exception
+ _logger.Error(ex)
+ Return Nothing
+
End Try
End Function
- Public Async Function ListFilesForUserAsync() As Task(Of FileList)
+ Private Function DeleteTermObjectFromMetadata(pObjectId As Long, pAttributeName As String, pTerm2Delete As String, Optional pUsername As String = "", Optional pLanguage As String = "") As Boolean
Try
- Dim oResponse As DocumentListResponse = Await _channel.ListFilesForUserAsync(New ListFilesForUserRequest())
- Return New FileList() With {
- .Datatable = oResponse.Datatable
- }
+ Dim oLanguage = NotNull(pLanguage, GetUserLanguage())
+ Dim oUsername = NotNull(pUsername, Environment.UserName)
+
+ Dim oIdIsForeign As Integer = 1
+ Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {pObjectId},'{pAttributeName}','{pTerm2Delete}','{oUsername}','{oLanguage}',{oIdIsForeign}"
+ Dim oResult = _channel.ExecuteNonQuery_MSSQL_IDB(oDELSQL)
+
+ Return oResult.OK
Catch ex As Exception
_logger.Error(ex)
- Throw ex
+ Return False
End Try
End Function
@@ -324,23 +516,20 @@ Public Class Client
End Try
End Function
- Public Async Function GetDatatableByNameAsync(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As Task(Of TableResult)
- Try
- Dim oResponse = Await _channel.ReturnDatatableFromCacheAsync(DatatableName, FilterExpression, SortByColumn)
- Return oResponse
- Catch ex As Exception
- _logger.Error(ex)
- Throw ex
- End Try
- End Function
+
+ '''
+ ''' Return infos about a file object
+ '''
+ '''
+ '''
+ '''
Public Function GetDocumentInfo(UserId As Long, ObjectId As Long) As DocumentInfo
Try
- Dim oParams = New DocumentInfoRequest With {
+ Dim oResponse As DocumentInfoResponse = _channel.GetFileInfoByObjectId(New DocumentInfoRequest With {
.ObjectId = ObjectId,
.UserId = UserId
- }
- Dim oResponse As DocumentInfoResponse = _channel.GetFileInfoByObjectId(oParams)
+ })
Return New DocumentInfo With {
.AccessRight = oResponse.FileRight,
@@ -413,5 +602,8 @@ Public Class Client
End Try
End Function
+ Private Function GetUserLanguage() As String
+ Return Threading.Thread.CurrentThread.CurrentUICulture.Name
+ End Function
End Class
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse.datasource
new file mode 100644
index 00000000..d646db66
--- /dev/null
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse.datasource
@@ -0,0 +1,10 @@
+
+
+
+ DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl
index c6b2a311..ed64d5c1 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl
@@ -178,6 +178,15 @@
+
+
+
+
+
+
+
+
+
@@ -270,5 +279,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd
index d913a0c6..0d6d3c7c 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd
@@ -278,4 +278,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
index 0cd31dc0..71f60112 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
@@ -475,6 +475,16 @@ Namespace EDMIServiceReference
_
Function ImportFileIntoFileObjectAsync(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse)
+
+ _
+ Function TestObjectIdExists(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As EDMIServiceReference.TestObjectIdExistsResponse
+
+ 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Vorgang mehrere Rückgabewerte aufweist.
+ _
+ Function TestObjectIdExistsAsync(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.TestObjectIdExistsResponse)
End Interface
_
Public Contents() As Byte
-
-
+
+ _
Public FilePath As String
-
-
+
+ _
Public ObjectId As Long
-
-
+
+ _
Public ObjectStoreType As String
-
-
+
+ _
Public Who As String
-
+
Public Sub New()
MyBase.New
End Sub
-
+
Public Sub New(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String)
MyBase.New
Me.Contents = Contents
@@ -781,150 +791,194 @@ Namespace EDMIServiceReference
Me.Who = Who
End Sub
End Class
-
-
+
+ _
Partial Public Class ImportFileIntoFileObjectResponse
-
-
+
+ _
Public Result As Boolean
-
+
Public Sub New()
MyBase.New
End Sub
-
+
Public Sub New(ByVal Result As Boolean)
MyBase.New
Me.Result = Result
End Sub
End Class
-
-
- Public Interface IEDMIServiceChannel
- Inherits EDMIServiceReference.IEDMIService, System.ServiceModel.IClientChannel
- End Interface
-
-
- Partial Public Class EDMIServiceClient
- Inherits System.ServiceModel.ClientBase(Of EDMIServiceReference.IEDMIService)
- Implements EDMIServiceReference.IEDMIService
-
+
+ _
+ Partial Public Class TestObjectIdExistsRequest
+
+ _
+ Public ObjectId As Long
+
Public Sub New()
MyBase.New
End Sub
-
+
+ Public Sub New(ByVal ObjectId As Long)
+ MyBase.New
+ Me.ObjectId = ObjectId
+ End Sub
+ End Class
+
+ _
+ Partial Public Class TestObjectIdExistsResponse
+
+ _
+ Public Deleted As Boolean
+
+ _
+ Public Exists As Boolean
+
+ _
+ Public Inactive As Boolean
+
+ Public Sub New()
+ MyBase.New
+ End Sub
+
+ Public Sub New(ByVal Deleted As Boolean, ByVal Exists As Boolean, ByVal Inactive As Boolean)
+ MyBase.New
+ Me.Deleted = Deleted
+ Me.Exists = Exists
+ Me.Inactive = Inactive
+ End Sub
+ End Class
+
+ _
+ Public Interface IEDMIServiceChannel
+ Inherits EDMIServiceReference.IEDMIService, System.ServiceModel.IClientChannel
+ End Interface
+
+ _
+ Partial Public Class EDMIServiceClient
+ Inherits System.ServiceModel.ClientBase(Of EDMIServiceReference.IEDMIService)
+ Implements EDMIServiceReference.IEDMIService
+
+ Public Sub New()
+ MyBase.New
+ End Sub
+
Public Sub New(ByVal endpointConfigurationName As String)
MyBase.New(endpointConfigurationName)
End Sub
-
+
Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As String)
MyBase.New(endpointConfigurationName, remoteAddress)
End Sub
-
+
Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As System.ServiceModel.EndpointAddress)
MyBase.New(endpointConfigurationName, remoteAddress)
End Sub
-
+
Public Sub New(ByVal binding As System.ServiceModel.Channels.Binding, ByVal remoteAddress As System.ServiceModel.EndpointAddress)
MyBase.New(binding, remoteAddress)
End Sub
-
+
Public Function Heartbeat() As Boolean Implements EDMIServiceReference.IEDMIService.Heartbeat
Return MyBase.Channel.Heartbeat
End Function
-
+
Public Function HeartbeatAsync() As System.Threading.Tasks.Task(Of Boolean) Implements EDMIServiceReference.IEDMIService.HeartbeatAsync
Return MyBase.Channel.HeartbeatAsync
End Function
-
+
Public Function ReturnDatatableFromCache(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCache
Return MyBase.Channel.ReturnDatatableFromCache(Name, FilterExpression, SortByColumn)
End Function
-
+
Public Function ReturnDatatableFromCacheAsync(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCacheAsync
Return MyBase.Channel.ReturnDatatableFromCacheAsync(Name, FilterExpression, SortByColumn)
End Function
-
+
Public Function ReturnDatatable_Firebird(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_Firebird
Return MyBase.Channel.ReturnDatatable_Firebird(SQL)
End Function
-
+
Public Function ReturnDatatable_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_FirebirdAsync
Return MyBase.Channel.ReturnDatatable_FirebirdAsync(SQL)
End Function
-
+
Public Function ReturnScalar_Firebird(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_Firebird
Return MyBase.Channel.ReturnScalar_Firebird(SQL)
End Function
-
+
Public Function ReturnScalar_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_FirebirdAsync
Return MyBase.Channel.ReturnScalar_FirebirdAsync(SQL)
End Function
-
+
Public Function ExecuteNonQuery_Firebird(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_Firebird
Return MyBase.Channel.ExecuteNonQuery_Firebird(SQL)
End Function
-
+
Public Function ExecuteNonQuery_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_FirebirdAsync
Return MyBase.Channel.ExecuteNonQuery_FirebirdAsync(SQL)
End Function
-
+
Public Function ReturnDatatable_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_IDB
Return MyBase.Channel.ReturnDatatable_MSSQL_IDB(SQL)
End Function
-
+
Public Function ReturnDatatable_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_IDBAsync
Return MyBase.Channel.ReturnDatatable_MSSQL_IDBAsync(SQL)
End Function
-
+
Public Function ReturnScalar_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_IDB
Return MyBase.Channel.ReturnScalar_MSSQL_IDB(SQL)
End Function
-
+
Public Function ReturnScalar_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_IDBAsync
Return MyBase.Channel.ReturnScalar_MSSQL_IDBAsync(SQL)
End Function
-
+
Public Function ExecuteNonQuery_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_IDB
Return MyBase.Channel.ExecuteNonQuery_MSSQL_IDB(SQL)
End Function
-
+
Public Function ExecuteNonQuery_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_IDBAsync
Return MyBase.Channel.ExecuteNonQuery_MSSQL_IDBAsync(SQL)
End Function
-
+
Public Function ReturnDatatable_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_ECM
Return MyBase.Channel.ReturnDatatable_MSSQL_ECM(SQL)
End Function
-
+
Public Function ReturnDatatable_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_ECMAsync
Return MyBase.Channel.ReturnDatatable_MSSQL_ECMAsync(SQL)
End Function
-
+
Public Function ReturnScalar_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_ECM
Return MyBase.Channel.ReturnScalar_MSSQL_ECM(SQL)
End Function
-
+
Public Function ReturnScalar_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_ECMAsync
Return MyBase.Channel.ReturnScalar_MSSQL_ECMAsync(SQL)
End Function
-
+
Public Function ExecuteNonQuery_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_ECM
Return MyBase.Channel.ExecuteNonQuery_MSSQL_ECM(SQL)
End Function
-
+
Public Function ExecuteNonQuery_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_ECMAsync
Return MyBase.Channel.ExecuteNonQuery_MSSQL_ECMAsync(SQL)
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_ImportFile(ByVal request As EDMIServiceReference.DocumentImportRequest) As EDMIServiceReference.DocumentImportResponse Implements EDMIServiceReference.IEDMIService.ImportFile
Return MyBase.Channel.ImportFile(request)
End Function
-
+
Public Function ImportFile(ByVal Contents() As Byte, ByVal DocumentType As String, ByVal FileName As String, ByVal ObjectStoreId As Long, ByVal RetentionDays As Long) As Long
Dim inValue As EDMIServiceReference.DocumentImportRequest = New EDMIServiceReference.DocumentImportRequest()
inValue.Contents = Contents
@@ -932,15 +986,15 @@ Namespace EDMIServiceReference
inValue.FileName = FileName
inValue.ObjectStoreId = ObjectStoreId
inValue.RetentionDays = RetentionDays
- Dim retVal As EDMIServiceReference.DocumentImportResponse = CType(Me, EDMIServiceReference.IEDMIService).ImportFile(inValue)
+ Dim retVal As EDMIServiceReference.DocumentImportResponse = CType(Me,EDMIServiceReference.IEDMIService).ImportFile(inValue)
Return retVal.ObjectId
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_ImportFileAsync(ByVal request As EDMIServiceReference.DocumentImportRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentImportResponse) Implements EDMIServiceReference.IEDMIService.ImportFileAsync
Return MyBase.Channel.ImportFileAsync(request)
End Function
-
+
Public Function ImportFileAsync(ByVal Contents() As Byte, ByVal DocumentType As String, ByVal FileName As String, ByVal ObjectStoreId As Long, ByVal RetentionDays As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentImportResponse)
Dim inValue As EDMIServiceReference.DocumentImportRequest = New EDMIServiceReference.DocumentImportRequest()
inValue.Contents = Contents
@@ -948,104 +1002,104 @@ Namespace EDMIServiceReference
inValue.FileName = FileName
inValue.ObjectStoreId = ObjectStoreId
inValue.RetentionDays = RetentionDays
- Return CType(Me, EDMIServiceReference.IEDMIService).ImportFileAsync(inValue)
+ Return CType(Me,EDMIServiceReference.IEDMIService).ImportFileAsync(inValue)
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_GetFileByObjectId(ByVal request As EDMIServiceReference.DocumentStreamRequest) As EDMIServiceReference.DocumentStreamResponse Implements EDMIServiceReference.IEDMIService.GetFileByObjectId
Return MyBase.Channel.GetFileByObjectId(request)
End Function
-
+
Public Function GetFileByObjectId(ByVal ObjectId As Long, ByRef FileContents As System.IO.Stream) As String
Dim inValue As EDMIServiceReference.DocumentStreamRequest = New EDMIServiceReference.DocumentStreamRequest()
inValue.ObjectId = ObjectId
- Dim retVal As EDMIServiceReference.DocumentStreamResponse = CType(Me, EDMIServiceReference.IEDMIService).GetFileByObjectId(inValue)
+ Dim retVal As EDMIServiceReference.DocumentStreamResponse = CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectId(inValue)
FileContents = retVal.FileContents
Return retVal.FileName
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_GetFileByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentStreamRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse) Implements EDMIServiceReference.IEDMIService.GetFileByObjectIdAsync
Return MyBase.Channel.GetFileByObjectIdAsync(request)
End Function
-
+
Public Function GetFileByObjectIdAsync(ByVal ObjectId As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse)
Dim inValue As EDMIServiceReference.DocumentStreamRequest = New EDMIServiceReference.DocumentStreamRequest()
inValue.ObjectId = ObjectId
- Return CType(Me, EDMIServiceReference.IEDMIService).GetFileByObjectIdAsync(inValue)
+ Return CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectIdAsync(inValue)
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_GetFileInfoByObjectId(ByVal request As EDMIServiceReference.DocumentInfoRequest) As EDMIServiceReference.DocumentInfoResponse Implements EDMIServiceReference.IEDMIService.GetFileInfoByObjectId
Return MyBase.Channel.GetFileInfoByObjectId(request)
End Function
-
+
Public Function GetFileInfoByObjectId(ByVal ObjectId As Long, ByVal UserId As Long, ByRef FullPath As String) As EDMIServiceReference.RightsAccessRight
Dim inValue As EDMIServiceReference.DocumentInfoRequest = New EDMIServiceReference.DocumentInfoRequest()
inValue.ObjectId = ObjectId
inValue.UserId = UserId
- Dim retVal As EDMIServiceReference.DocumentInfoResponse = CType(Me, EDMIServiceReference.IEDMIService).GetFileInfoByObjectId(inValue)
+ Dim retVal As EDMIServiceReference.DocumentInfoResponse = CType(Me,EDMIServiceReference.IEDMIService).GetFileInfoByObjectId(inValue)
FullPath = retVal.FullPath
Return retVal.FileRight
End Function
-
+
Public Function GetFileInfoByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentInfoRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentInfoResponse) Implements EDMIServiceReference.IEDMIService.GetFileInfoByObjectIdAsync
Return MyBase.Channel.GetFileInfoByObjectIdAsync(request)
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_ListFilesForUser(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As EDMIServiceReference.DocumentListResponse Implements EDMIServiceReference.IEDMIService.ListFilesForUser
Return MyBase.Channel.ListFilesForUser(request)
End Function
-
+
Public Function ListFilesForUser() As System.Data.DataTable
Dim inValue As EDMIServiceReference.ListFilesForUserRequest = New EDMIServiceReference.ListFilesForUserRequest()
- Dim retVal As EDMIServiceReference.DocumentListResponse = CType(Me, EDMIServiceReference.IEDMIService).ListFilesForUser(inValue)
+ Dim retVal As EDMIServiceReference.DocumentListResponse = CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUser(inValue)
Return retVal.Datatable
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_ListFilesForUserAsync(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) Implements EDMIServiceReference.IEDMIService.ListFilesForUserAsync
Return MyBase.Channel.ListFilesForUserAsync(request)
End Function
-
+
Public Function ListFilesForUserAsync() As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse)
Dim inValue As EDMIServiceReference.ListFilesForUserRequest = New EDMIServiceReference.ListFilesForUserRequest()
- Return CType(Me, EDMIServiceReference.IEDMIService).ListFilesForUserAsync(inValue)
+ Return CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUserAsync(inValue)
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_NewObjectId(ByVal request As EDMIServiceReference.NewObjectIdRequest) As EDMIServiceReference.NewObjectIdResponse Implements EDMIServiceReference.IEDMIService.NewObjectId
Return MyBase.Channel.NewObjectId(request)
End Function
-
+
Public Function NewObjectId(ByVal BusinessEntity As String, ByVal KindType As String, ByVal Who As String) As Long
Dim inValue As EDMIServiceReference.NewObjectIdRequest = New EDMIServiceReference.NewObjectIdRequest()
inValue.BusinessEntity = BusinessEntity
inValue.KindType = KindType
inValue.Who = Who
- Dim retVal As EDMIServiceReference.NewObjectIdResponse = CType(Me, EDMIServiceReference.IEDMIService).NewObjectId(inValue)
+ Dim retVal As EDMIServiceReference.NewObjectIdResponse = CType(Me,EDMIServiceReference.IEDMIService).NewObjectId(inValue)
Return retVal.ObjectId
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_NewObjectIdAsync(ByVal request As EDMIServiceReference.NewObjectIdRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewObjectIdResponse) Implements EDMIServiceReference.IEDMIService.NewObjectIdAsync
Return MyBase.Channel.NewObjectIdAsync(request)
End Function
-
+
Public Function NewObjectIdAsync(ByVal BusinessEntity As String, ByVal KindType As String, ByVal Who As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewObjectIdResponse)
Dim inValue As EDMIServiceReference.NewObjectIdRequest = New EDMIServiceReference.NewObjectIdRequest()
inValue.BusinessEntity = BusinessEntity
inValue.KindType = KindType
inValue.Who = Who
- Return CType(Me, EDMIServiceReference.IEDMIService).NewObjectIdAsync(inValue)
+ Return CType(Me,EDMIServiceReference.IEDMIService).NewObjectIdAsync(inValue)
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_NewFileObject(ByVal request As EDMIServiceReference.NewFileObjectRequest) As EDMIServiceReference.NewFileObjectResponse Implements EDMIServiceReference.IEDMIService.NewFileObject
Return MyBase.Channel.NewFileObject(request)
End Function
-
+
Public Function NewFileObject(ByVal DateImported As Date, ByVal Extension As String, ByVal KeepExtension As Boolean, ByVal ObjectId As Long, ByVal StoreType As String) As String
Dim inValue As EDMIServiceReference.NewFileObjectRequest = New EDMIServiceReference.NewFileObjectRequest()
inValue.DateImported = DateImported
@@ -1053,15 +1107,15 @@ Namespace EDMIServiceReference
inValue.KeepExtension = KeepExtension
inValue.ObjectId = ObjectId
inValue.StoreType = StoreType
- Dim retVal As EDMIServiceReference.NewFileObjectResponse = CType(Me, EDMIServiceReference.IEDMIService).NewFileObject(inValue)
+ Dim retVal As EDMIServiceReference.NewFileObjectResponse = CType(Me,EDMIServiceReference.IEDMIService).NewFileObject(inValue)
Return retVal.FileObjectPath
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_NewFileObjectAsync(ByVal request As EDMIServiceReference.NewFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileObjectResponse) Implements EDMIServiceReference.IEDMIService.NewFileObjectAsync
Return MyBase.Channel.NewFileObjectAsync(request)
End Function
-
+
Public Function NewFileObjectAsync(ByVal DateImported As Date, ByVal Extension As String, ByVal KeepExtension As Boolean, ByVal ObjectId As Long, ByVal StoreType As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileObjectResponse)
Dim inValue As EDMIServiceReference.NewFileObjectRequest = New EDMIServiceReference.NewFileObjectRequest()
inValue.DateImported = DateImported
@@ -1069,14 +1123,14 @@ Namespace EDMIServiceReference
inValue.KeepExtension = KeepExtension
inValue.ObjectId = ObjectId
inValue.StoreType = StoreType
- Return CType(Me, EDMIServiceReference.IEDMIService).NewFileObjectAsync(inValue)
+ Return CType(Me,EDMIServiceReference.IEDMIService).NewFileObjectAsync(inValue)
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_ImportFileIntoFileObject(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As EDMIServiceReference.ImportFileIntoFileObjectResponse Implements EDMIServiceReference.IEDMIService.ImportFileIntoFileObject
Return MyBase.Channel.ImportFileIntoFileObject(request)
End Function
-
+
Public Function ImportFileIntoFileObject(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) As Boolean
Dim inValue As EDMIServiceReference.ImportFileIntoFileObjectRequest = New EDMIServiceReference.ImportFileIntoFileObjectRequest()
inValue.Contents = Contents
@@ -1084,15 +1138,15 @@ Namespace EDMIServiceReference
inValue.ObjectId = ObjectId
inValue.ObjectStoreType = ObjectStoreType
inValue.Who = Who
- Dim retVal As EDMIServiceReference.ImportFileIntoFileObjectResponse = CType(Me, EDMIServiceReference.IEDMIService).ImportFileIntoFileObject(inValue)
+ Dim retVal As EDMIServiceReference.ImportFileIntoFileObjectResponse = CType(Me,EDMIServiceReference.IEDMIService).ImportFileIntoFileObject(inValue)
Return retVal.Result
End Function
-
-
+
+ _
Function EDMIServiceReference_IEDMIService_ImportFileIntoFileObjectAsync(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse) Implements EDMIServiceReference.IEDMIService.ImportFileIntoFileObjectAsync
Return MyBase.Channel.ImportFileIntoFileObjectAsync(request)
End Function
-
+
Public Function ImportFileIntoFileObjectAsync(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse)
Dim inValue As EDMIServiceReference.ImportFileIntoFileObjectRequest = New EDMIServiceReference.ImportFileIntoFileObjectRequest()
inValue.Contents = Contents
@@ -1102,5 +1156,23 @@ Namespace EDMIServiceReference
inValue.Who = Who
Return CType(Me,EDMIServiceReference.IEDMIService).ImportFileIntoFileObjectAsync(inValue)
End Function
+
+ _
+ Function EDMIServiceReference_IEDMIService_TestObjectIdExists(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As EDMIServiceReference.TestObjectIdExistsResponse Implements EDMIServiceReference.IEDMIService.TestObjectIdExists
+ Return MyBase.Channel.TestObjectIdExists(request)
+ End Function
+
+ Public Function TestObjectIdExists(ByVal ObjectId As Long, ByRef Exists As Boolean, ByRef Inactive As Boolean) As Boolean
+ Dim inValue As EDMIServiceReference.TestObjectIdExistsRequest = New EDMIServiceReference.TestObjectIdExistsRequest()
+ inValue.ObjectId = ObjectId
+ Dim retVal As EDMIServiceReference.TestObjectIdExistsResponse = CType(Me,EDMIServiceReference.IEDMIService).TestObjectIdExists(inValue)
+ Exists = retVal.Exists
+ Inactive = retVal.Inactive
+ Return retVal.Deleted
+ End Function
+
+ Public Function TestObjectIdExistsAsync(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.TestObjectIdExistsResponse) Implements EDMIServiceReference.IEDMIService.TestObjectIdExistsAsync
+ Return MyBase.Channel.TestObjectIdExistsAsync(request)
+ End Function
End Class
End Namespace
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl
index c6ee60d8..84c376ce 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl
@@ -261,6 +261,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Modules.EDMIAPI/Constants.vb b/Modules.EDMIAPI/Constants.vb
index 70a6e7e7..753e0bad 100644
--- a/Modules.EDMIAPI/Constants.vb
+++ b/Modules.EDMIAPI/Constants.vb
@@ -1,6 +1,20 @@
Public Class Constants
+ Public Const DEFAULT_SERVICE_PORT = 9000
+
Public Enum DatabaseType
ECM
IDB
End Enum
+
+ Public Enum AttributeType
+ Varchar = 1
+ BigInteger = 2
+ Float = 3
+ [Decimal] = 4
+ [Date] = 5
+ [DateTime] = 6
+ Bit = 7
+ VectorString = 8
+ VectorInteger = 9
+ End Enum
End Class
diff --git a/Modules.EDMIAPI/EDMI.API.vbproj b/Modules.EDMIAPI/EDMI.API.vbproj
index 6c5717a4..f32d7915 100644
--- a/Modules.EDMIAPI/EDMI.API.vbproj
+++ b/Modules.EDMIAPI/EDMI.API.vbproj
@@ -142,6 +142,9 @@
Reference.svcmap
+
+ Reference.svcmap
+
Designer
diff --git a/Modules.Filesystem/File.vb b/Modules.Filesystem/File.vb
index d9e8b283..0573be64 100644
--- a/Modules.Filesystem/File.vb
+++ b/Modules.Filesystem/File.vb
@@ -1,5 +1,6 @@
Imports System.IO
Imports System.Security.Cryptography
+Imports System.Text
Imports System.Text.RegularExpressions
Imports DigitalData.Modules.Logging
@@ -73,12 +74,29 @@ Public Class File
End Function
Public Function GetChecksum(FilePath As String) As String
- Using oFileStream = IO.File.OpenRead(FilePath)
- Using oStream As New BufferedStream(oFileStream, 1200000)
- Dim oChecksum() As Byte = SHA256.Create.ComputeHash(oStream)
- Return BitConverter.ToString(oChecksum).Replace("-", String.Empty)
+ Try
+ Using oFileStream = IO.File.OpenRead(FilePath)
+ Using oStream As New BufferedStream(oFileStream, 1200000)
+ Dim oChecksum() As Byte = SHA256.Create.ComputeHash(oStream)
+ Return FormatHash(oChecksum)
+ End Using
End Using
- End Using
+ Catch ex As Exception
+ _Logger.Error(ex)
+ Return Nothing
+ End Try
+ End Function
+
+ Public Function GetChecksumFromString(pStringToCheck As String) As String
+ Dim oBytes() As Byte = Encoding.UTF8.GetBytes(pStringToCheck)
+ Dim oChecksum() As Byte = SHA256.Create.ComputeHash(oBytes)
+ Return FormatHash(oChecksum)
+ End Function
+
+ Private Function FormatHash(pChecksum)
+ Return BitConverter.
+ ToString(pChecksum).
+ Replace("-", String.Empty)
End Function
'''
diff --git a/Modules.Filesystem/My Project/AssemblyInfo.vb b/Modules.Filesystem/My Project/AssemblyInfo.vb
index 57d6d325..bce1df19 100644
--- a/Modules.Filesystem/My Project/AssemblyInfo.vb
+++ b/Modules.Filesystem/My Project/AssemblyInfo.vb
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
'
-
-
+
+
diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb
index 6d3c27a7..5d8a99d3 100644
--- a/Service.EDMIService/EDMIService.vb
+++ b/Service.EDMIService/EDMIService.vb
@@ -469,6 +469,32 @@ Public Class EDMIService
End Try
End Function
+ Public Function TestObjectIdExists(Data As TestObjectIdExistsRequest) As TestObjectIdExistsResponse Implements IEDMIService.TestObjectIdExists
+ Try
+ Dim oSQL As String = $"SELECT IDB_OBJ_ID, ACTIVE, DELETED FROM TBIDB_OBJECT WHERE IDB_OBJ_ID = {Data.ObjectId}"
+ Dim oTable As DataTable = MSSQL_IDB.GetDatatable(oSQL)
+
+ If IsNothing(oTable) OrElse oTable.Rows.Count = 0 Then
+ _Logger.Warn("ObjectId {0} does not exist")
+ Return New TestObjectIdExistsResponse(False)
+ End If
+
+ Dim oRow As DataRow = oTable.Rows.Item(0)
+ Dim oActive = Utils.NotNull(oRow.Item("ACTIVE"), False)
+ Dim oDeleted = Utils.NotNull(oRow.Item("DELETED"), False)
+
+ Return New TestObjectIdExistsResponse(True) With {
+ .Deleted = oDeleted,
+ .Inactive = Not oActive
+ }
+
+ Catch ex As Exception
+ _Logger.Error(ex)
+ Return New TestObjectIdExistsResponse(False)
+
+ End Try
+ End Function
+
Public Function NewFileObject(Data As NewFileObjectRequest) As NewFileObjectResponse Implements IEDMIService.NewFileObject
Try
Dim oStoreType As String = Data.StoreType
diff --git a/Service.EDMIService/Helpers/Messages.vb b/Service.EDMIService/Helpers/Messages.vb
index 0387607f..9d85f186 100644
--- a/Service.EDMIService/Helpers/Messages.vb
+++ b/Service.EDMIService/Helpers/Messages.vb
@@ -131,6 +131,28 @@ Namespace Messages
End Class
#End Region
+#Region "Helpers"
+
+ Public Class TestObjectIdExistsRequest
+
+ Public ObjectId As Long
+ End Class
+
+
+ Public Class TestObjectIdExistsResponse
+ Public Sub New(pExists As Boolean)
+ Exists = pExists
+ End Sub
+
+
+ Public Exists As Boolean = False
+
+ Public Inactive As Boolean = False
+
+ Public Deleted As Boolean = False
+ End Class
+#End Region
+
End Namespace
diff --git a/Service.EDMIService/IEDMIService.vb b/Service.EDMIService/IEDMIService.vb
index 0bb9a80e..606fed9a 100644
--- a/Service.EDMIService/IEDMIService.vb
+++ b/Service.EDMIService/IEDMIService.vb
@@ -92,4 +92,10 @@ Interface IEDMIService
Function ImportFileIntoFileObject(Data As ImportFileIntoFileObjectRequest) As ImportFileIntoFileObjectResponse
#End Region
+#Region "Helpers"
+
+
+ Function TestObjectIdExists(Data As TestObjectIdExistsRequest) As TestObjectIdExistsResponse
+#End Region
+
End Interface
\ No newline at end of file
diff --git a/Service.EDMIService/WindowsService.vb b/Service.EDMIService/WindowsService.vb
index 06bb68e3..a9cb0e65 100644
--- a/Service.EDMIService/WindowsService.vb
+++ b/Service.EDMIService/WindowsService.vb
@@ -38,7 +38,7 @@ Public Class WindowsService
Try
Dim oServicePath As String = AppDomain.CurrentDomain.BaseDirectory
- _LogConfig = New LogConfig(LogConfig.PathType.CustomPath, IO.Path.Combine(oServicePath, "Log"))
+ _LogConfig = New LogConfig(LogConfig.PathType.CustomPath, IO.Path.Combine(oServicePath, "Log"), Nothing, Nothing, Nothing, 3)
_Logger = _LogConfig.GetLogger()
Try