EDMI: Include Doctypes in ClientConfig

This commit is contained in:
Jonathan Jenne
2022-02-04 16:49:05 +01:00
parent d8b1b7e2b7
commit 67852d4572
19 changed files with 1564 additions and 1357 deletions

View File

@@ -20,7 +20,7 @@ Public Class Client
' Runtime Variables
Private ReadOnly ServerAddress As String
Private ReadOnly ServerPort As Integer
Private ClientConfig As ConfigClientConfiguration
Private _ClientConfig As GlobalStateClientConfiguration
' Channel
Private ReadOnly ChannelFactory As ChannelFactory(Of IEDMIServiceChannel)
@@ -32,6 +32,17 @@ Public Class Client
' Public Variables
Public CachedTables As New List(Of String)
Public ReadOnly Property ClientConfig As GlobalStateClientConfiguration
Get
If _ClientConfig Is Nothing Then
Throw New ApplicationException("ClientConfig is empty! Please connect to the service before accessing this property")
End If
Return _ClientConfig
End Get
End Property
''' <summary>
''' Parse a IPAddress:Port String into its parts
@@ -127,7 +138,7 @@ Public Class Client
Dim oResponse = Channel.GetClientConfig()
If oResponse.OK Then
ClientConfig = oResponse.ClientConfig
_ClientConfig = oResponse.ClientConfig
Else
Logger.Warn("Client Configuration could not be loaded: [{0}]", oResponse.ErrorMessage)
End If
@@ -141,6 +152,7 @@ Public Class Client
End Try
End Function
''' <summary>
''' Aborts the channel and creates a new connection
''' </summary>
@@ -156,14 +168,6 @@ Public Class Client
End Try
End Sub
Public Function TryGetClientConfig() As ConfigClientConfiguration
If ClientConfig Is Nothing Then
Throw New ApplicationException("ClientConfig is empty! Please connect to the service before calling this function")
End If
Return ClientConfig
End Function
Private Async Function UpdateTimer_Elapsed(sender As Object, e As Timers.ElapsedEventArgs) As Task Handles UpdateTimer.Elapsed
Try
Dim oTables As String() = Await Channel.GetCachedTablesAsync()
@@ -234,7 +238,7 @@ Public Class Client
End Try
End Function
Public Async Function GetFileObjectAsync(pObjectId As Long, pLoadFileContents As Boolean) As Task(Of FileObject)
Public Async Function ZooFlow_GetFileObjectAsync(pObjectId As Long, pLoadFileContents As Boolean) As Task(Of FileObject)
Try
Dim oGetFileObject As New Modules.Zooflow.GetFileObject(LogConfig, Me)
Dim oFileObject = Await oGetFileObject.RunAsync(pObjectId, pLoadFileContents)

View File

@@ -6,7 +6,7 @@
<xs:complexContent mixed="false">
<xs:extension xmlns:q1="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" base="q1:BaseResponse">
<xs:sequence>
<xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" minOccurs="0" name="ClientConfig" nillable="true" type="q2:Config.ClientConfiguration" />
<xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" minOccurs="0" name="ClientConfig" nillable="true" type="q2:GlobalState.ClientConfiguration" />
</xs:sequence>
</xs:extension>
</xs:complexContent>

View File

@@ -1,9 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Config.ClientConfiguration">
<xs:complexType name="GlobalState.ClientConfiguration">
<xs:sequence>
<xs:element minOccurs="0" name="DocumentTypes" nillable="true" type="tns:ArrayOfGlobalState.Doctype" />
<xs:element minOccurs="0" name="ForceDirectDatabaseAccess" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
<xs:element name="Config.ClientConfiguration" nillable="true" type="tns:Config.ClientConfiguration" />
<xs:element name="GlobalState.ClientConfiguration" nillable="true" type="tns:GlobalState.ClientConfiguration" />
<xs:complexType name="ArrayOfGlobalState.Doctype">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="GlobalState.Doctype" nillable="true" type="tns:GlobalState.Doctype" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfGlobalState.Doctype" nillable="true" type="tns:ArrayOfGlobalState.Doctype" />
<xs:complexType name="GlobalState.Doctype">
<xs:sequence>
<xs:element minOccurs="0" name="FileChangedAction" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="GlobalState.Doctype" nillable="true" type="tns:GlobalState.Doctype" />
</xs:schema>

View File

@@ -145,7 +145,9 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.DBNull)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.Exception)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ConfigClientConfiguration)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateClientConfiguration)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateDoctype())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateDoctype)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UnexpectedErrorFault)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseFault)), _
@@ -245,7 +247,9 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.DBNull)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.Exception)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ConfigClientConfiguration)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateClientConfiguration)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateDoctype())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateDoctype)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UnexpectedErrorFault)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseFault)), _
@@ -410,7 +414,9 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.DBNull)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.Exception)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ConfigClientConfiguration)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateClientConfiguration)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateDoctype())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GlobalStateDoctype)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UnexpectedErrorFault)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseFault)), _
@@ -538,10 +544,10 @@ Namespace EDMIServiceReference
Inherits EDMIServiceReference.BaseResponse
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private ClientConfigField As EDMIServiceReference.ConfigClientConfiguration
Private ClientConfigField As EDMIServiceReference.GlobalStateClientConfiguration
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Property ClientConfig() As EDMIServiceReference.ConfigClientConfiguration
Public Property ClientConfig() As EDMIServiceReference.GlobalStateClientConfiguration
Get
Return Me.ClientConfigField
End Get
@@ -556,15 +562,18 @@ Namespace EDMIServiceReference
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="Config.ClientConfiguration", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService"), _
System.Runtime.Serialization.DataContractAttribute(Name:="GlobalState.ClientConfiguration", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService"), _
System.SerializableAttribute()> _
Partial Public Class ConfigClientConfiguration
Partial Public Class GlobalStateClientConfiguration
Inherits Object
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
<System.NonSerializedAttribute()> _
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private DocumentTypesField() As EDMIServiceReference.GlobalStateDoctype
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private ForceDirectDatabaseAccessField As Boolean
@@ -578,6 +587,19 @@ Namespace EDMIServiceReference
End Set
End Property
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Property DocumentTypes() As EDMIServiceReference.GlobalStateDoctype()
Get
Return Me.DocumentTypesField
End Get
Set
If (Object.ReferenceEquals(Me.DocumentTypesField, value) <> true) Then
Me.DocumentTypesField = value
Me.RaisePropertyChanged("DocumentTypes")
End If
End Set
End Property
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Property ForceDirectDatabaseAccess() As Boolean
Get
@@ -601,6 +623,69 @@ Namespace EDMIServiceReference
End Sub
End Class
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="GlobalState.Doctype", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService"), _
System.SerializableAttribute()> _
Partial Public Class GlobalStateDoctype
Inherits Object
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
<System.NonSerializedAttribute()> _
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private FileChangedActionField As String
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private NameField As String
<Global.System.ComponentModel.BrowsableAttribute(false)> _
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
Get
Return Me.extensionDataField
End Get
Set
Me.extensionDataField = value
End Set
End Property
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Property FileChangedAction() As String
Get
Return Me.FileChangedActionField
End Get
Set
If (Object.ReferenceEquals(Me.FileChangedActionField, value) <> true) Then
Me.FileChangedActionField = value
Me.RaisePropertyChanged("FileChangedAction")
End If
End Set
End Property
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Property Name() As String
Get
Return Me.NameField
End Get
Set
If (Object.ReferenceEquals(Me.NameField, value) <> true) Then
Me.NameField = value
Me.RaisePropertyChanged("Name")
End If
End Set
End Property
Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Protected Sub RaisePropertyChanged(ByVal propertyName As String)
Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
If (Not (propertyChanged) Is Nothing) Then
propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
End If
End Sub
End Class
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="UnexpectedErrorFault", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Exceptio"& _

View File

@@ -8,7 +8,7 @@ Imports DigitalData.Modules.Language.Utils
Public Class DatabaseWithFallback
Private ReadOnly _Logger As Logger
Private ReadOnly _Client As Client
Private ReadOnly _ClientConfig As ConfigClientConfiguration
Private ReadOnly _ClientConfig As GlobalStateClientConfiguration
Private ReadOnly _DatabaseECM As MSSQLServer
Private _DatabaseIDB As MSSQLServer
@@ -54,7 +54,7 @@ Public Class DatabaseWithFallback
_DatabaseIDB = DatabaseIDB
' Load client config, will throw if client is not yet connected to service
_ClientConfig = Client.TryGetClientConfig()
_ClientConfig = Client.ClientConfig
End Sub
''' <summary>