Add NewFileIndex

This commit is contained in:
Jonathan Jenne
2019-03-04 17:13:49 +01:00
parent 6f0164d010
commit bbd761c0ad
51 changed files with 408 additions and 437 deletions

View File

@@ -84,11 +84,13 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AppConfig.vb" />
<Compile Include="ContainerResult.vb" />
<Compile Include="DocumentResult.vb" />
<Compile Include="Results\BaseResult.vb" />
<Compile Include="Results\ContainerResult.vb" />
<Compile Include="Results\DocumentResult.vb" />
<Compile Include="Exceptions.vb" />
<Compile Include="DatabaseResult.vb" />
<Compile Include="Results\DatabaseResult.vb" />
<Compile Include="EDMService.vb" />
<Compile Include="Results\IndexResult.vb" />
<Compile Include="WindowsService.vb">
<SubType>Component</SubType>
</Compile>

View File

@@ -1,54 +0,0 @@
Imports System.Runtime.Serialization
<Serializable>
<DataContract>
<KnownType(GetType(DBNull))>
Public Class TableResult
<DataMember>
Public Property OK As Boolean
<DataMember>
Public Property ErrorMessage As String
<DataMember>
Public Property Table As DataTable
Public Sub New(OK As Boolean, Table As DataTable, ErrorMessage As String)
Me.OK = OK
Me.ErrorMessage = ErrorMessage
Me.Table = Table
End Sub
End Class
<Serializable>
<DataContract>
<KnownType(GetType(DBNull))>
Public Class ScalarResult
<DataMember>
Public Property OK As Boolean
<DataMember>
Public Property ErrorMessage As String
<DataMember>
Public Property Scalar As Object
Public Sub New(OK As Boolean, Scalar As Object, ErrorMessage As String)
Me.OK = OK
Me.ErrorMessage = ErrorMessage
Me.Scalar = Scalar
End Sub
End Class
<Serializable>
<DataContract>
<KnownType(GetType(DBNull))>
Public Class NonQueryResult
<DataMember>
Public Property OK As Boolean
<DataMember>
Public Property ErrorMessage As String
Public Sub New(OK As Boolean, ErrorMessage As String)
Me.OK = OK
Me.ErrorMessage = ErrorMessage
End Sub
End Class

View File

@@ -1,20 +0,0 @@
Imports DigitalData.Modules.Filesystem
<Serializable>
Public Class DocumentResult
Public ReadOnly OK As Boolean
Public ReadOnly ErrorMessage As String
Public Document As DocumentObject
Public HasContents As Boolean
Public Contents As Byte()
Public Sub New()
OK = True
ErrorMessage = Nothing
End Sub
Public Sub New(ErrorMessage As String)
OK = False
Me.ErrorMessage = ErrorMessage
End Sub
End Class

View File

@@ -86,11 +86,11 @@ Public Class EDMService
_request.LogDebug($"ReturnDatatable, SQL: {SQL}")
Dim oResult As DataTable = Database.GetDatatableWithConnection(SQL, _request.Connection)
Return New TableResult(True, oResult, Nothing)
Return New TableResult(oResult)
Catch ex As Exception
_logger.Error(ex)
_request.LogError(ex.Message)
Return New TableResult(False, Nothing, ex.Message)
Return New TableResult(ex.Message)
End Try
End Function
@@ -102,11 +102,11 @@ Public Class EDMService
_request.LogDebug($"ReturnScalar, SQL: {SQL}")
Dim oResult As Object = Database.GetScalarValueWithConnection(SQL, _request.Connection)
Return New ScalarResult(True, oResult, Nothing)
Return New ScalarResult(oResult)
Catch ex As Exception
_logger.Error(ex)
_request.LogError(ex.Message)
Return New ScalarResult(False, Nothing, ex.Message)
Return New ScalarResult(ex.Message)
End Try
End Function
@@ -118,24 +118,24 @@ Public Class EDMService
_request.LogDebug($"ExecuteNonQuery, SQL: {SQL}")
Dim oResult As Boolean = Database.ExecuteNonQueryWithConnection(SQL, _request.Connection)
Return New NonQueryResult(True, Nothing)
Return New NonQueryResult()
Catch ex As Exception
_logger.Error(ex)
_request.LogError(ex.Message)
Return New NonQueryResult(False, ex.Message)
Return New NonQueryResult(ex.Message)
End Try
End Function
#End Region
#Region "Document"
Public Function CreateFile(FileName As String, Contents() As Byte) As DocumentResult Implements IEDMService.CreateFile
Public Function NewFile(FileName As String, Contents() As Byte) As DocumentResult Implements IEDMService.NewFile
Try
Dim oContainer As FileContainer
Dim oContainerId As String
If Not TestUserAuth() Then
Throw New Exception("User not authorized")
Throw New Exception($"User {_username} not authorized.")
End If
oContainer = FileContainer.Create(LogConfig, AppConfig.ContainerPassword)
@@ -160,9 +160,8 @@ Public Class EDMService
_logger.Debug("File saved in Container!", FileName)
Return New DocumentResult() With {
.Document = New DocumentObject(oContainerId, oDocId, FileName)
}
Dim oDocument = New DocumentObject(oContainerId, oDocId, FileName)
Return New DocumentResult(oDocument)
Catch ex As Exception
_logger.Error(ex)
Return New DocumentResult(ex.Message)
@@ -181,9 +180,8 @@ Public Class EDMService
oFileContainer.SetFile(Contents, oFileContainer.GetFile.FileName)
oFileContainer.Save()
Return New DocumentResult() With {
.Document = DocObject
}
Return New DocumentResult(DocObject)
Catch ex As Exception
_logger.Error(ex)
Return Nothing
@@ -198,10 +196,7 @@ Public Class EDMService
Dim oContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oContainerPath)
Dim oContents As Byte() = oContainer.GetFile().Contents
Return New DocumentResult With {
.Document = DocObject,
.Contents = oContents
}
Return New DocumentResult(DocObject, oContents)
Catch ex As Exception
_logger.Error(ex)
Return New DocumentResult(ex.Message)
@@ -224,7 +219,6 @@ Public Class EDMService
End Try
End Function
Private Function GetContainerPath(ContainerId As String) As String
Return Path.Combine(AppConfig.ContainerPath, GetContainerName(ContainerId))
End Function
@@ -243,8 +237,16 @@ Public Class EDMService
#End Region
#Region "Index"
Public Function SetFileIndex(DocObject As DocumentObject, Syskey As String, Value As String) As Object Implements IEDMService.SetFileIndex
Throw New NotImplementedException()
Public Function NewFileIndex(DocObject As DocumentObject, Syskey As String, LanguageCode As String, Value As String) As IndexResult Implements IEDMService.NewFileIndex
Try
Dim oSQL = $"SELECT FNICM_NEW_OBJECT_VALUE({DocObject.DocumentId},'{Syskey}','{LanguageCode}','{Value}','{_username}') FROM RDB$DATABASE;"
Dim oIndexId As Int64 = Database.GetScalarValue(oSQL)
Return New IndexResult(oIndexId)
Catch ex As Exception
_logger.Error(ex)
Return New IndexResult(ex.Message)
End Try
End Function
#End Region
End Class

View File

@@ -28,7 +28,7 @@ Interface IEDMService
#Region "Document"
<OperationContract>
Function CreateFile(FileName As String, Contents As Byte()) As DocumentResult
Function NewFile(FileName As String, Contents As Byte()) As DocumentResult
<OperationContract>
Function UpdateFile(DocObject As DocumentObject, Contents As Byte()) As DocumentResult
@@ -42,7 +42,7 @@ Interface IEDMService
#Region "Index"
<OperationContract>
Function SetFileIndex(DocObject As DocumentObject, Syskey As String, Value As String)
Function NewFileIndex(DocObject As DocumentObject, Syskey As String, LanguageCode As String, Value As String) As IndexResult
#End Region
End Interface

View File

@@ -0,0 +1,20 @@
Imports System.Runtime.Serialization
<Serializable>
<DataContract>
<KnownType(GetType(DBNull))>
Public Class BaseResult
<DataMember>
Public Property OK As Boolean
<DataMember>
Public Property ErrorMessage As String
Public Sub New()
Me.OK = OK
End Sub
Public Sub New(ErrorMessage As String)
OK = False
Me.ErrorMessage = ErrorMessage
End Sub
End Class

View File

@@ -0,0 +1,56 @@
Imports System.Runtime.Serialization
<Serializable>
<DataContract>
<KnownType(GetType(DBNull))>
Public Class TableResult
Inherits BaseResult
<DataMember>
Public Property Table As DataTable
Public Sub New(Table As DataTable)
MyBase.New()
Me.Table = Table
End Sub
Public Sub New(ErrorMessage As String)
MyBase.New(ErrorMessage)
End Sub
End Class
<Serializable>
<DataContract>
<KnownType(GetType(DBNull))>
Public Class ScalarResult
Inherits BaseResult
<DataMember>
Public Property Scalar As Object
Public Sub New(Scalar As Object)
MyBase.New()
Me.Scalar = Scalar
End Sub
Public Sub New(ErrorMessage As String)
MyBase.New(ErrorMessage)
End Sub
End Class
<Serializable>
<DataContract>
<KnownType(GetType(DBNull))>
Public Class NonQueryResult
Inherits BaseResult
Public Sub New()
MyBase.New()
End Sub
Public Sub New(ErrorMessage As String)
MyBase.New(ErrorMessage)
End Sub
End Class

View File

@@ -0,0 +1,26 @@
Imports DigitalData.Modules.Filesystem
<Serializable>
Public Class DocumentResult
Inherits BaseResult
Public Document As DocumentObject
Public HasContents As Boolean = False
Public Contents As Byte()
Public Sub New(Document As DocumentObject)
MyBase.New()
Me.Document = Document
End Sub
Public Sub New(Document As DocumentObject, Contents As Byte())
MyBase.New()
Me.Document = Document
Me.Contents = Contents
Me.HasContents = True
End Sub
Public Sub New(ErrorMessage As String)
MyBase.New(ErrorMessage)
End Sub
End Class

View File

@@ -0,0 +1,17 @@
Imports DigitalData.Modules.Filesystem
<Serializable>
Public Class IndexResult
Inherits BaseResult
Public ReadOnly IndexId As Int64
Public Sub New(IndexId As Int64)
MyBase.New()
Me.IndexId = IndexId
End Sub
Public Sub New(ErrorMessage As String)
MyBase.New(ErrorMessage)
End Sub
End Class