From 3ef80383ea7f57f2739e6216ca09b557e16964d2 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 5 Jul 2021 16:31:22 +0200 Subject: [PATCH] EDMI: Update Service, Add TestObjectIdExists, Work on GetVariableValue --- Modules.EDMIAPI/Client.vb | 240 +++++++-------- ...ence.TestObjectIdExistsResponse.datasource | 10 + .../DigitalData.Services.EDMIService.wsdl | 14 + .../DigitalData.Services.EDMIService.xsd | 16 + .../EDMIServiceReference/Reference.vb | 278 +++++++++++------- .../EDMIServiceReference/service.wsdl | 12 + Modules.EDMIAPI/Constants.vb | 2 + Modules.EDMIAPI/EDMI.API.vbproj | 3 + Service.EDMIService/EDMIService.vb | 26 ++ Service.EDMIService/Helpers/Messages.vb | 22 ++ Service.EDMIService/IEDMIService.vb | 6 + Service.EDMIService/WindowsService.vb | 2 +- 12 files changed, 399 insertions(+), 232 deletions(-) create mode 100644 Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse.datasource diff --git a/Modules.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb index dfc067f9..85362502 100644 --- a/Modules.EDMIAPI/Client.vb +++ b/Modules.EDMIAPI/Client.vb @@ -10,11 +10,12 @@ 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 @@ -107,8 +108,6 @@ Public Class Client End Try End Function - - ''' ''' TODO: Creates a new object ''' @@ -140,10 +139,12 @@ Public Class Client ''' 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, 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 @@ -151,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, @@ -161,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, @@ -173,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) @@ -208,13 +212,15 @@ Public Class Client ''' ''' 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 + ' Set default options If pOptions Is Nothing Then pOptions = New SetVariableValueOptions() End If @@ -222,68 +228,93 @@ Public Class Client Dim oLanguage = NotNull(pOptions.Language, GetUserLanguage()) Dim oUsername = NotNull(pOptions.Username, Environment.UserName) + 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 oDTMyNewValues As DataTable = pValue - Dim oOldAttributeResult As Object - Dim oTypeOldResult As Object + Dim oValueTable As DataTable = pValue + Dim oCurrentValue As Object + Dim oCurrentValueType As String If pOptions.CheckDeleted = True Then - oOldAttributeResult = GetVariableValue(pAttributeName, pAttributeType) - oTypeOldResult = oOldAttributeResult.GetType.Name - If oTypeOldResult = GetType(DataTable).Name Then - Dim oOldValues As DataTable = oOldAttributeResult - If oOldValues.Rows.Count > 1 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 oOldValueRow As DataRow In oOldValues.Rows + For Each oRow As DataRow In oCurrentTable.Rows Dim oExists As Boolean = False - For Each oNewValueRow As DataRow In oDTMyNewValues.Rows - Dim oInfo = $"Checking oldValue[{oOldValueRow.Item(0)}] vs NewValue [{oNewValueRow.Item(1)}]" - If oNewValueRow.Item(1).ToString.ToUpper = oOldValueRow.Item(0).ToString.ToUpper Then + 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 - Dim oInfo = $"Value [{oOldValueRow.Item(0)}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!" - _logger.Debug(oInfo) - SetVariableValue(pObjectId, My.Application.Globix.CURRENT_PROFILE_LOG_INDEX, AttributeType.Varchar, oInfo) - DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oOldValueRow.Item(0)) + _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 oDTMyNewValues.Rows.Count > 1 Then + If oValueTable.Rows.Count > 1 Then Dim oExists As Boolean = False - For Each oNewValueRow As DataRow In oDTMyNewValues.Rows - Dim oInfo1 = $"Checking oldValue[{oOldAttributeResult}] vs NewValue [{oNewValueRow.Item(1)}]" - If oNewValueRow.Item(1).ToString.ToUpper = oOldAttributeResult.ToString.ToUpper Then + 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 - Dim oInfo = $"Value [{oOldAttributeResult}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!" - _logger.Debug(oInfo) - SetVariableValue(pObjectId, My.Application.Globix.CURRENT_PROFILE_LOG_INDEX, AttributeType.Varchar, oInfo) - DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oOldAttributeResult) + _logger.Debug($"Value [{oCurrentValue}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!") + DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue) End If + Else - Dim oInfo = $"Value [{oOldAttributeResult}] of Attribute [{pAttributeName}] obviously was updated during runtime - will be deleted!" - _logger.Debug(oInfo) - SetVariableValue(pObjectId, My.Application.Globix.CURRENT_PROFILE_LOG_INDEX, AttributeType.Varchar, oInfo) - DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oOldAttributeResult) + _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 oDTMyNewValues.Rows + 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)" @@ -324,21 +355,57 @@ Public Class Client 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 + + Catch ex As Exception + _logger.Error(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 oSingleAttribute As Boolean + Dim oVectorAttribute As Boolean = False Select Case pAttributeType Case AttributeType.VectorInteger - oSingleAttribute = False + oVectorAttribute = True Case AttributeType.VectorString - oSingleAttribute = False + oVectorAttribute = True Case Else - oSingleAttribute = True + oVectorAttribute = False End Select Dim oAttributeValue As Object = Nothing - If Not IsNothing(My.Tables.DTIDB_DOC_DATA) Then - If oSingleAttribute = True And My.Tables.DTIDB_DOC_DATA.Rows.Count = 1 And pOptions.FromIDB = False Then + 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" @@ -350,7 +417,7 @@ Public Class Client pAttributeName = "CHANGED_WHO" End If - oAttributeValue = My.Tables.DTIDB_DOC_DATA.Rows(0).Item(pAttributeName) + 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 @@ -367,17 +434,18 @@ Public Class Client Dim oDatatable As TableResult = _channel.ReturnDatatable_MSSQL_IDB(oFNSQL) If oDatatable.OK = False Then - _logger.Warn(oDatatable.ErrorMessage) - Return Nothing + 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 @@ -397,90 +465,6 @@ 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 Function CreateFileStoreObject(pObjectId As Long, pStoreType As String, pDate As String, pExtension As String, pKeepExtension As String) As String - ' Try - ' ' Remove dot in Extension - ' If pExtension.StartsWith(".") Then - ' pExtension = pExtension.Substring(1) - ' 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 - - '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 - ' } - - ' 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 - - ' Return New StreamedFile() With { - ' .Stream = oMemoryStream, - ' .FileName = oResponse.FileName - ' } - ' Catch ex As Exception - ' _logger.Error(ex) - ' Throw ex - ' End Try - 'End Function - - 'Public Async Function ListFilesForUserAsync() As Task(Of FileList) - ' Try - ' Dim oResponse As DocumentListResponse = Await _channel.ListFilesForUserAsync(New ListFilesForUserRequest()) - ' Return New FileList() With { - ' .Datatable = oResponse.Datatable - ' } - ' Catch ex As Exception - ' _logger.Error(ex) - ' Throw ex - ' End Try - 'End Function - Public Function GetDatatableFromIDB(SQL As String) As TableResult Try Dim oResponse = _channel.ReturnDatatable_MSSQL_IDB(SQL) 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 - - + + _ + 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 3ed6326d..753e0bad 100644 --- a/Modules.EDMIAPI/Constants.vb +++ b/Modules.EDMIAPI/Constants.vb @@ -1,4 +1,6 @@ Public Class Constants + Public Const DEFAULT_SERVICE_PORT = 9000 + Public Enum DatabaseType ECM IDB 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/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