EDMI: Move Object Status changes into Service

This commit is contained in:
Jonathan Jenne 2022-03-29 14:27:31 +02:00
parent 615666f040
commit abff7fa745
6 changed files with 31 additions and 22 deletions

View File

@ -63,12 +63,6 @@ Public Class ctrlObjectPropertyDialog
.Language = Environment.User.Language, .Language = Environment.User.Language,
.Username = Environment.User.UserName .Username = Environment.User.UserName
}) })
Logger.Info("Updating Object State for Object [{0}]", ObjectId)
Await Client.SetObjectStateAsync(ObjectId, FileStore.OBJECT_STATE_METADATA_CHANGED, New Options.SetObjectStateOptions With {
.Language = Environment.User.Language,
.Username = Environment.User.UserName
})
Next Next
ErrorHandler.ShowInfoMessage($"{Changes.Count} Änderungen gespeichert!") ErrorHandler.ShowInfoMessage($"{Changes.Count} Änderungen gespeichert!")
@ -92,6 +86,10 @@ Public Class ctrlObjectPropertyDialog
End Function End Function
Public Async Function LoadObject(pObjectId As Long, pEntityId As Long) As Task(Of Boolean) Public Async Function LoadObject(pObjectId As Long, pEntityId As Long) As Task(Of Boolean)
If pObjectId = 0 Then
Return True
End If
IsLoading = True IsLoading = True
Dim oLoadingHandle = SplashScreenManager.ShowOverlayForm(Me) Dim oLoadingHandle = SplashScreenManager.ShowOverlayForm(Me)

View File

@ -223,11 +223,6 @@ Public Class frmObjectPropertyDialog
.Language = Environment.User.Language, .Language = Environment.User.Language,
.Username = Environment.User.UserName .Username = Environment.User.UserName
}) })
Logger.Info("Updating Object State for Object [{0}]", ObjectId)
Await Client.SetObjectStateAsync(ObjectId, IDB.FileStore.OBJECT_STATE_METADATA_CHANGED, New Options.SetObjectStateOptions With {
.Language = Environment.User.Language,
.Username = Environment.User.UserName
})
Next Next
ErrorHandler.ShowInfoMessage($"{Changes.Count} Änderungen gespeichert!") ErrorHandler.ShowInfoMessage($"{Changes.Count} Änderungen gespeichert!")

View File

@ -288,7 +288,6 @@ Public Class frmDocumentResultList
Public Async Sub Watcher_FileChanged(sender As Object, e As DocumentResultList.Watcher.FileChangedArgs) Handles Watcher.FileChanged Public Async Sub Watcher_FileChanged(sender As Object, e As DocumentResultList.Watcher.FileChangedArgs) Handles Watcher.FileChanged
Try Try
Dim oDoctype As GlobalStateDoctype = Nothing Dim oDoctype As GlobalStateDoctype = Nothing
If e.File.Document.DocumentType IsNot Nothing Then If e.File.Document.DocumentType IsNot Nothing Then
@ -330,18 +329,10 @@ Public Class frmDocumentResultList
Private Async Function Watcher_OverwriteFile(pFile As DocumentResultList.Watcher.OpenFile) As Task Private Async Function Watcher_OverwriteFile(pFile As DocumentResultList.Watcher.OpenFile) As Task
Await Watcher_UpdateFile(pFile, pCreateNewVersion:=False) Await Watcher_UpdateFile(pFile, pCreateNewVersion:=False)
Await Client.SetObjectStateAsync(pFile.Document.Id, OBJECT_STATE_FILE_CHANGED, New Options.SetObjectStateOptions With {
.Language = Environment.User.Language,
.Username = Environment.User.UserName
})
End Function End Function
Private Async Function Watcher_VersionFile(pFile As DocumentResultList.Watcher.OpenFile) As Task Private Async Function Watcher_VersionFile(pFile As DocumentResultList.Watcher.OpenFile) As Task
Await Watcher_UpdateFile(pFile, pCreateNewVersion:=True) Await Watcher_UpdateFile(pFile, pCreateNewVersion:=True)
Await Client.SetObjectStateAsync(pFile.Document.Id, OBJECT_STATE_FILE_VERSIONED, New Options.SetObjectStateOptions With {
.Language = Environment.User.Language,
.Username = Environment.User.UserName
})
End Function End Function
Private Async Function Watcher_UpdateFile(pFile As DocumentResultList.Watcher.OpenFile, pCreateNewVersion As Boolean) As Task Private Async Function Watcher_UpdateFile(pFile As DocumentResultList.Watcher.OpenFile, pCreateNewVersion As Boolean) As Task

View File

@ -199,6 +199,25 @@ Namespace IDB
Return True Return True
End Function End Function
Public Function SetObjectState(pObjectId As Long, pState As String, pWho As String) As Boolean
Try
Dim oSql As String = $"EXEC PRIDB_OBJECT_SET_STATE {pObjectId}, '{pState}', '{pWho}'"
Dim oResult = Database.ExecuteNonQuery(oSql)
If oResult = False Then
Return False
End If
Logger.Info("Object state for [{0}] created: [{1}]", pObjectId, pState)
Return True
Catch ex As Exception
Logger.Warn("Error while setting Object State")
Logger.Error(ex)
Return False
End Try
End Function
End Class End Class
End Namespace End Namespace

View File

@ -2,6 +2,7 @@
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports DigitalData.Services.EDMIService.IDB Imports DigitalData.Services.EDMIService.IDB
Imports System.Data.SqlClient Imports System.Data.SqlClient
Imports DigitalData.Modules.Base.IDB
Namespace Methods.IDB.SetAttributeValue Namespace Methods.IDB.SetAttributeValue
Public Class SetAttributeValueMethod Public Class SetAttributeValueMethod
@ -34,6 +35,8 @@ Namespace Methods.IDB.SetAttributeValue
Logger.Debug("Attribute value set!") Logger.Debug("Attribute value set!")
Helpers.SetObjectState(pData.ObjectId, FileStore.OBJECT_STATE_FILE_CHANGED, pData.Who)
' Finally, commit the transaction ' Finally, commit the transaction
Transaction?.Commit() Transaction?.Commit()

View File

@ -2,8 +2,7 @@
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Database.MSSQLServer.TransactionMode Imports DigitalData.Modules.Database.MSSQLServer.TransactionMode
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Services.EDMIService.Methods Imports DigitalData.Modules.Base.IDB
Imports DigitalData.Services.EDMIService.GlobalState
Namespace Methods.IDB.UpdateFile Namespace Methods.IDB.UpdateFile
Public Class UpdateFileMethod Public Class UpdateFileMethod
@ -62,6 +61,8 @@ Namespace Methods.IDB.UpdateFile
LogAndThrow(ex, $"Could not write file [{oFilePath}] to disk!") LogAndThrow(ex, $"Could not write file [{oFilePath}] to disk!")
End Try End Try
Helpers.SetObjectState(pData.ObjectId, FileStore.OBJECT_STATE_FILE_CHANGED, pData.User.UserName)
oResultObjectId = pData.ObjectId oResultObjectId = pData.ObjectId
Else Else
@ -101,6 +102,8 @@ Namespace Methods.IDB.UpdateFile
DatabaseIDB.ExecuteNonQuery(oSql) DatabaseIDB.ExecuteNonQuery(oSql)
Logger.Debug("Versioning complete from [{0}] to [{1}]", pData.ObjectId, oNewObjectId) Logger.Debug("Versioning complete from [{0}] to [{1}]", pData.ObjectId, oNewObjectId)
Helpers.SetObjectState(pData.ObjectId, FileStore.OBJECT_STATE_FILE_VERSIONED, pData.User.UserName)
oResultObjectId = oNewObjectId oResultObjectId = oNewObjectId
End If End If