- `MSSQLServer.vb`: Konvertierung von `Nothing`-Werten zu `DBNull.Value` und detaillierte Protokollierung von SQL-Fehlern hinzugefügt.
- `AssemblyInfo.vb`: Aktualisierung der Assembly-Version auf `2.4.0.0`.
- `Client.vb`: Einführung von `_IsReconnecting`, um parallele Reconnects zu verhindern. Verbesserte Fehlerbehandlung, Protokollierung und Ressourcenfreigabe.
- `MailSession.vb`: Konsistentere Protokollierung, Änderung von `Info` zu `Debug` beim Schließen der Verbindung.
- `EDMI.API.vbproj`: Hinzufügen der Datei `ErrorLog.txt`.
- `ErrorLog.txt`: Dokumentation von Timeout- und Verbindungsproblemen mit detaillierten Stack-Traces.
Diese Änderungen verbessern die Stabilität, Fehlertoleranz und Protokollierungsqualität der Anwendung.
Es wurde eine neue Funktion `GetServiceStatus` zur Klasse `Client` hinzugefügt, die einen Live-Monitoring-Snapshot vom Service abruft. In `ClientStatus` wurde die Eigenschaft `ClientId` als reguläre Eigenschaft hinzugefügt.
In `Reference.vb` wurden zahlreiche neue Methoden für Datenbank- und Dateioperationen implementiert, sowohl synchron als auch asynchron. Dazu gehören Funktionen wie `ReturnDatatable`, `NewFile`, `GetFileByObjectId` und `TestObjectIdExists`. Bestehende Methoden wurden überarbeitet, um die Lesbarkeit zu verbessern.
Die Datei `LogConfig.vb` wurde angepasst, indem eine Debug-Log-Meldung entfernt wurde. In `AssemblyInfo.vb` wurde die Version auf `2.7.0.0` aktualisiert. Ein neues Projekt `EDMIService` wurde zur Lösung hinzugefügt, einschließlich der entsprechenden Build-Konfigurationen.
- Implementierung von `IDisposable` in der Klasse `Client`, um Ressourcen wie Timer und Kanäle ordnungsgemäß freizugeben.
- Einführung von `ActiveClients` und `ClientStatus` zur Verfolgung und Statusanzeige aktiver Clients.
- Verbesserte Fehlerbehandlung mit der Methode `HandleCommunicationError`, die Kommunikationsfehler protokolliert, den Client offline setzt und einen Reconnect auslöst.
- Optimierung der Reconnect-Logik mit asynchronen Wiederverbindungsversuchen und gestaffelten Verzögerungen.
- Erweiterung der Konstruktoren in `Client` um einen optionalen `pClientName`-Parameter und Generierung eines eindeutigen `ClientId`.
- Verbesserte Timer-Logik und asynchrone Verarbeitung in `UpdateTimer_Elapsed`.
- Einführung der Methode `EnsureAvailable`, um sicherzustellen, dass der Kanal vor Service-Aufrufen verfügbar ist.
- Hinzufügen asynchroner Varianten für Service-Methoden (`GetDatatable`, `GetScalarValue`, `ExecuteNonQuery`) und Fallback auf direkte Datenbankzugriffe.
- Verbesserte Timeout-Einstellungen und Verbindungsverwaltung in der Klasse `Channel`.
- Erweiterungen in `DatabaseWithFallback` für asynchrone Methoden und detaillierteres Logging.
- Aktualisierung der Assembly-Version auf `2.7.0`.
In `MSSQLServer.vb` wurde die Fehlerbehandlung erweitert, indem Fehler beim Öffnen einer Verbindung (`pConnection.Open`) nun protokolliert werden.
Die Versionsinformationen in `AssemblyInfo.vb` wurden von `3.8.1.0` auf `3.8.2.0` aktualisiert.
In `XRechnungViewDocument.vb` wurde die Methode `RenderLabelValuePair` angepasst, um Eingabewerte mit der neuen Methode `SanitizeForPdf` zu bereinigen. Diese entfernt problematische Unicode-Zeichen, die Abstürze beim PDF-Rendering verursachen könnten, und protokolliert entfernte Zeichen. Dies erhöht die Stabilität und Sicherheit.
Die Logik in `ConfigManager(Of T)` wurde angepasst, um bei Fehlern beim Laden der App-Konfiguration detailliertere Informationen (Pfad und Fehlergrund) zu protokollieren.
In `AssemblyInfo.vb` wurden die Trademark-Version, Assembly-Version und File-Version von `1.4.0.0` auf `1.5.0.0` aktualisiert.
Die Funktion `SetVariableValue` wurde aus `Client.vb` entfernt, da sie umfangreiche, aber nicht mehr benötigte Logik zur Attributverarbeitung enthielt.
In `EDMI.API.vbproj` wurden Projektreferenzen durch DLL-Referenzen ersetzt (`DigitalData.Modules.Base`, `Config`, `Database`, `Logging`), um die Modularität zu verbessern.
Die Assembly-Metadaten in `AssemblyInfo.vb` wurden aktualisiert, einschließlich Copyright (2026), Trademark (2.0.0) und Assembly-Version (2.0.0.0), um die neue Hauptversion zu reflektieren.
Die Datei `DEX_API.vb` wurde entfernt, einschließlich der Klasse `DEX_API`, die von `JobBase` geerbt und das Interface `IJob(Of ADSyncArgs)` implementiert hat.
Ein neuer Job-Typ `API_SQL` wurde zur Enumeration `JobType` in `JobConfig.vb` hinzugefügt.
Neue Dateien wurden hinzugefügt:
- `APISQLArgs.vb`: Enthält die Klasse `APISQLArgs` mit der Eigenschaft `ProfileID`.
- `APISQLConfig.vb`: Enthält die Klasse `APISQLConfig` mit den Eigenschaften `BaseUrl`, `Property1`, `Property2`, `Property3`.
- `DEX_APIJob.vb`: Enthält die Klasse `DEX_APIJob`, die von `JobBase` erbt und das Interface `IJob(Of APISQLArgs)` implementiert. Die Methoden `StartDex_API` und `ShouldStart` wurden hierhin verschoben und angepasst.
Die Projektdatei `Jobs.vbproj` wurde aktualisiert, um die neuen Dateien einzubinden und den Verweis auf `DEX_API.vb` zu entfernen.
Die Methode `Create_PDFfromXML` wurde vollständig überarbeitet, um die Struktur und Lesbarkeit zu verbessern. Die Logik wurde modularisiert, indem neue Methoden wie `InitializeFilePaths`, `InitializePDF`, `ProcessInvoiceData` und `FinalizePDF` eingeführt wurden.
Neue Hilfsklassen (`FilePaths`, `PdfRenderContext`, `InvoiceItemData`) wurden hinzugefügt, um die Datenstrukturierung und den Kontext zu verbessern. Die Verarbeitung von Bereichen und Folgeelementen wurde in spezifische Methoden ausgelagert (`HandleAreaSwitch`, `HandleFollowUpItem`).
Die Rendering-Logik wurde durch Methoden wie `RenderDisplayItem` und `RenderMultiLineText` vereinfacht. Neue Konstanten für Layout und Textformate wurden eingeführt, um die Standardisierung zu fördern.
Die Debug-Logs wurden erweitert, um detaillierte Einblicke in die Verarbeitungsschritte zu bieten. Die Änderungen verbessern die Wartbarkeit, Modularität und Robustheit der PDF-Erstellung erheblich.
Die Abhängigkeit von `Logging.vbproj` wurde in den Projektdateien `Base.vbproj`, `Database.vbproj` und `Encryption.vbproj` entfernt und durch eine direkte Referenz auf die vorkompilierte DLL `DigitalData.Modules.Logging.dll` ersetzt.
Ein neuer Bereich `INCLUDED_NOTE` wurde in der Klasse `XRechnungViewDocument` hinzugefügt, um Notizen und Hinweise zu verarbeiten und im PDF darzustellen. Die PDF-Logik wurde entsprechend erweitert, und ein neues Währungsformat `INVOICE_TOTAL_CHARGE_AMOUNT` wurde hinzugefügt.
Die Datei `logParser.txt` wurde in `Jobs.vbproj` eingebunden, und neue Debug-Logs dokumentieren den Ablauf der Methode `Create_PDFfromXML`.
Die Assembly-Version wurde auf `3.6.0.0` aktualisiert.
Die Abhängigkeit von `Logging.vbproj` wurde entfernt und durch die direkte Referenzierung der DLL `DigitalData.Modules.Logging.dll` ersetzt. Dies betrifft die Dateien `Config.vbproj` und `Interfaces.vbproj`.
Die Assembly-Version wurde in `AssemblyInfo.vb` von `3.5.1.0` auf `3.5.2.0` erhöht.
SQL-Abfragen in `ImportZUGFeRDFiles.vb` wurden angepasst, um `WITH (NOLOCK)` hinzuzufügen, um potenzielle Sperrprobleme zu vermeiden.
Die Methode `CleanupTempFolder` wurde in `DocumentPathHandler.vb` hinzugefügt, um temporäre Dateien zu bereinigen.
In `AssemblyInfo.vb` wurden Copyright-Jahr und Versionen aktualisiert (u.a. auf `2.0.0.0`, `1.4.0.0`, `1.5.0.0`).
Ein neues Muster `PATTERN_TBCOL` wurde in `Patterns.vb` hinzugefügt und in die entsprechenden Listen aufgenommen.
In `SettingsState.vb` wurde das Feld `SavetoDrive` ergänzt.
Refactored project references to use new DDModules paths and updated third-party DLL locations. Migrated GUIs.Test.EDMIBenchmark to NuGet-based dependency management, adding packages.config and binding redirects for key assemblies. Replaced Office COM interop with direct assembly references. Integrated GdPicture via NuGet and removed redundant hardcoded references. These changes improve maintainability, portability, and project structure.