Neue Features, Optimierungen und Bugfixes

- Neues Projekt `EDMI.API` zur Solution hinzugefügt.
- `App.config`: Abhängigkeiten und `bindingRedirect` aktualisiert.
- Verbesserte Thread-Sicherheit mit `ReaderWriterLockSlim`.
- SQL-Abfragen mit `WITH (NOLOCK)` für bessere Parallelität.
- Robuste Verarbeitung von `DataRow`-Werten mit `IIf(IsDBNull(...))`.
- Neue Sicherheitsprüfung für `JobListener` initialisiert.
- `SaveDataTables` optimiert, Performance-Warnungen hinzugefügt.
- Versionsnummer auf `2.5.0.0` aktualisiert, Copyright auf 2026.
- Paket `NLog` aus `packages.config` entfernt.
This commit is contained in:
Developer01
2026-08-28 12:19:34 +02:00
parent 9d5e022562
commit 0f9e7c55ec
15 changed files with 292 additions and 175 deletions

View File

@@ -3,8 +3,7 @@ Imports System.ServiceModel
Imports System.ServiceModel.Description
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Language
Imports DigitalData.Modules
'Imports DigitalData.Modules.
Imports DigitalData.Modules.EDMI
Imports DigitalData.Modules.EDMI.API.Rights
Imports DigitalData.Services.EDMIService.Messages
@@ -13,6 +12,7 @@ Imports DigitalData.Services.EDMIService.Methods
Imports DigitalData.Services.EDMIService.Methods.Database
Imports DigitalData.Services.EDMIService.Methods.IDB
<ServiceBehavior(InstanceContextMode:=InstanceContextMode.PerSession)>
Public Class EDMIService
Implements IEDMIService
@@ -22,7 +22,6 @@ Public Class EDMIService
Public Shared MSSQL_IDB As MSSQLServer
Public Shared Firebird As Firebird
Public Shared AppConfig As Config
Public Shared Filesystem As Filesystem.File
Public Shared GlobalState As GlobalState
Public Shared Scheduler As Scheduler
@@ -586,7 +585,17 @@ Public Class EDMIService
Dim oRow As DataRow = oRows.First()
Dim oRightAsInt = oRow.Item("ACCESSRIGHT")
oRight = Utils.ToEnum(Of AccessRight)(oRightAsInt)
Select Case oRight
Case 1
oRight = AccessRight.VIEW_ONLY
Case 2
oRight = AccessRight.VIEW_EXPORT
Case 4
oRight = AccessRight.FULL
Case Else
_Logger.Warn("GetAccessRightForObjectId: Unknown access right [{0}] for user [{1}] on object [{2}]", oRightAsInt, UserId, ObjectId)
oRight = AccessRight.VIEW_ONLY
End Select
End If
_Logger.Debug("Successfully parsed AccessRights for ObjectId [{0}]", ObjectId)