diff --git a/DDLicenseService/AppConfig.vb b/DDLicenseService/AppConfig.vb
new file mode 100644
index 00000000..5503ef49
--- /dev/null
+++ b/DDLicenseService/AppConfig.vb
@@ -0,0 +1,12 @@
+Imports System.Configuration
+
+Public Class AppConfig
+ Public Shared ConfigPath As String
+
+ Public Shared Sub Load()
+ With ConfigurationManager.AppSettings
+ ConfigPath = .Item("CONFIG_PATH")
+ End With
+ End Sub
+End Class
+
diff --git a/DDLicenseService/DDEDMLicenseService.vbproj b/DDLicenseService/DDEDMLicenseService.vbproj
index 2bd7fe17..6be2d11c 100644
--- a/DDLicenseService/DDEDMLicenseService.vbproj
+++ b/DDLicenseService/DDEDMLicenseService.vbproj
@@ -44,7 +44,7 @@
On
- DDLicenseService.EDMWindowsService
+ DDLicenseService.WindowsService
@@ -79,6 +79,7 @@
+
@@ -114,7 +115,7 @@
-
+
MyApplicationCodeGenerator
Application.Designer.vb
diff --git a/DDLicenseService/WindowsService.vb b/DDLicenseService/WindowsService.vb
index f3ac05f7..d1bdcfca 100644
--- a/DDLicenseService/WindowsService.vb
+++ b/DDLicenseService/WindowsService.vb
@@ -26,7 +26,7 @@ Public Class WindowsService
Protected Overrides Sub OnStart(ByVal args As String())
Try
- _logConfig = New LogConfig(LogConfig.PathType.CustomPath, "E:\EDMService")
+ _logConfig = New LogConfig(LogConfig.PathType.CustomPath, AppConfig.ConfigPath)
_logger = _logConfig.GetLogger()
_logger.Info("Service {0} is starting", SERVICE_DISPLAY_NAME)
diff --git a/DDLicenseService/app.config b/DDLicenseService/app.config
index fffa925f..0997aa57 100644
--- a/DDLicenseService/app.config
+++ b/DDLicenseService/app.config
@@ -1,28 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/DDMonorepo.sln b/DDMonorepo.sln
index 1dd85fdb..31b83654 100644
--- a/DDMonorepo.sln
+++ b/DDMonorepo.sln
@@ -67,6 +67,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientSuiteTest", "DXApplic
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDEDMLicenseService", "DDLicenseService\DDEDMLicenseService.vbproj", "{CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C}"
EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "License", "Modules.License\License.vbproj", "{5EBACBFA-F11A-4BBF-8D02-91461F2293ED}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -165,6 +167,10 @@ Global
{CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -193,6 +199,7 @@ Global
{5B1171DC-FFFE-4813-A20D-786AAE47B320} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
{221FDADA-D849-4036-A7CE-D1FC1D67E1FA} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB}
{CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
+ {5EBACBFA-F11A-4BBF-8D02-91461F2293ED} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286}
diff --git a/EDMI_ClientSuite/EDMI_ClientSuite.vbproj b/EDMI_ClientSuite/EDMI_ClientSuite.vbproj
index 8da0a440..7370d18d 100644
--- a/EDMI_ClientSuite/EDMI_ClientSuite.vbproj
+++ b/EDMI_ClientSuite/EDMI_ClientSuite.vbproj
@@ -248,9 +248,6 @@
Form
-
- LicenseSchema.xsd
-
True
@@ -367,9 +364,6 @@
Designer
-
- Designer
-
MyApplicationCodeGenerator
@@ -438,6 +432,10 @@
{3DCD6D1A-C830-4241-B7E4-27430E7EA483}
LookupControl
+
+ {5ebacbfa-f11a-4bbf-8d02-91461f2293ed}
+ License
+
{903b2d7d-3b80-4be9-8713-7447b704e1b0}
Logging
diff --git a/EDMI_ClientSuite/frmMain.vb b/EDMI_ClientSuite/frmMain.vb
index 510e1f1a..b9133050 100644
--- a/EDMI_ClientSuite/frmMain.vb
+++ b/EDMI_ClientSuite/frmMain.vb
@@ -6,6 +6,7 @@ Imports EDMI_ClientSuite.ClassLayout
Imports System.IO
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Logging.LogConfig
+Imports DigitalData.Modules.License
Public Class frmMain
Private _Logger As Logger
@@ -129,21 +130,16 @@ Public Class frmMain
Dim oModules As New List(Of LicenseModule)
oModules.Add(oModule)
- Dim oLicense = New License() With {
+ Dim oLicense = New LicenseSchema() With {
.Modules = oModules.ToArray
}
- Dim oSerializer As New Xml.Serialization.XmlSerializer(GetType(License))
+ Dim oLicenseFile As New LicenseFile(My.LogConfig, "E:\")
+ oLicenseFile.SaveFile(oLicense)
- Using oStream = New FileStream("E:\license.xml", FileMode.Create)
- oSerializer.Serialize(oStream, oLicense)
- oStream.Flush()
- End Using
+ Dim oSerializer As New Xml.Serialization.XmlSerializer(GetType(LicenseSchema))
+ Dim oLicense2 As LicenseSchema
- Dim oLicense2 As License
-
- Using oReader As New StreamReader("E:\license.xml")
- oLicense2 = oSerializer.Deserialize(oReader)
- End Using
+ oLicense2 = oLicenseFile.LoadFile()
End Sub
End Class
\ No newline at end of file
diff --git a/Message/My Project/AssemblyInfo.vb b/Message/My Project/AssemblyInfo.vb
index f862895e..b6fdfd76 100644
--- a/Message/My Project/AssemblyInfo.vb
+++ b/Message/My Project/AssemblyInfo.vb
@@ -8,10 +8,10 @@ Imports System.Runtime.InteropServices
' Werte der Assemblyattribute überprüfen
-
+
-
+
diff --git a/Modules.License/License.vbproj b/Modules.License/License.vbproj
new file mode 100644
index 00000000..e944f4ee
--- /dev/null
+++ b/Modules.License/License.vbproj
@@ -0,0 +1,129 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}
+ Library
+ DigitalData.Modules.License
+ DigitalData.Modules.License
+ 512
+ Windows
+ v4.6.1
+
+
+ true
+ full
+ true
+ true
+ bin\Debug\
+ DigitalData.Modules.License.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ DigitalData.Modules.License.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+ ..\packages\NLog.4.5.11\lib\net45\NLog.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LicenseSchema.xsd
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ Designer
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+ {991d0231-4623-496d-8bd0-9ca906029cbc}
+ Filesystem
+
+
+ {903b2d7d-3b80-4be9-8713-7447b704e1b0}
+ Logging
+
+
+
+
\ No newline at end of file
diff --git a/Modules.License/LicenseFile.vb b/Modules.License/LicenseFile.vb
new file mode 100644
index 00000000..1be668c3
--- /dev/null
+++ b/Modules.License/LicenseFile.vb
@@ -0,0 +1,51 @@
+Imports System.IO
+Imports System.Xml.Serialization
+Imports DigitalData.Modules.Logging
+
+Public Class LicenseFile
+ Public Const LICENSE_FILENAME = "License.xml"
+
+ Public ReadOnly Path As String
+ Private _Logger As Logger
+
+ Public Sub New(LogConfig As LogConfig, Path As String)
+ Me.Path = Path
+ _Logger = LogConfig.GetLogger()
+ End Sub
+
+ Private Function GetSerializer() As XmlSerializer
+ Dim oSerializer As New XmlSerializer(GetType(LicenseSchema))
+ Return oSerializer
+ End Function
+
+ Public Function LoadFile(Optional FileName As String = LICENSE_FILENAME) As LicenseSchema
+ Try
+ Dim oSerializer = GetSerializer()
+ Dim oFilePath As String = IO.Path.Combine(Path, FileName)
+ Dim oLicense As LicenseSchema
+
+ Using oReader As New StreamReader(oFilePath)
+ oLicense = oSerializer.Deserialize(oReader)
+ End Using
+
+ Return oLicense
+ Catch ex As Exception
+ _Logger.Error(ex)
+ Throw ex
+ End Try
+ End Function
+
+ Public Sub SaveFile(License As LicenseSchema, Optional FileName As String = LICENSE_FILENAME)
+ Try
+ Dim oSerializer = GetSerializer()
+
+ Using oStream = New FileStream(FileName, FileMode.Create, FileAccess.Write)
+ oSerializer.Serialize(oStream, License)
+ oStream.Flush()
+ End Using
+ Catch ex As Exception
+ _Logger.Error(ex)
+ Throw ex
+ End Try
+ End Sub
+End Class
diff --git a/EDMI_ClientSuite/License/LicenseSchema.vb b/Modules.License/LicenseSchema.vb
similarity index 96%
rename from EDMI_ClientSuite/License/LicenseSchema.vb
rename to Modules.License/LicenseSchema.vb
index 9c0e1b20..1fcda6f8 100644
--- a/EDMI_ClientSuite/License/LicenseSchema.vb
+++ b/Modules.License/LicenseSchema.vb
@@ -22,20 +22,20 @@ Imports System.Xml.Serialization
System.SerializableAttribute(), _
System.Diagnostics.DebuggerStepThroughAttribute(), _
System.ComponentModel.DesignerCategoryAttribute("code"), _
- System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true, [Namespace]:="http://tempuri.org/LicenseSchema.xsd"), _
- System.Xml.Serialization.XmlRootAttribute([Namespace]:="http://tempuri.org/LicenseSchema.xsd", IsNullable:=false)> _
-Partial Public Class License
-
+ System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true, [Namespace]:="http://tempuri.org/LicenseSchema.xsd"),
+ System.Xml.Serialization.XmlRootAttribute([Namespace]:="http://tempuri.org/LicenseSchema.xsd", IsNullable:=False)>
+Partial Public Class LicenseSchema
+
Private modulesField() As LicenseModule
-
+
'''
- _
+
Public Property Modules() As LicenseModule()
Get
Return Me.modulesField
End Get
Set
- Me.modulesField = value
+ Me.modulesField = Value
End Set
End Property
End Class
diff --git a/EDMI_ClientSuite/License/LicenseSchema.xsd b/Modules.License/LicenseSchema.xsd
similarity index 99%
rename from EDMI_ClientSuite/License/LicenseSchema.xsd
rename to Modules.License/LicenseSchema.xsd
index 83b3b7be..34a4f742 100644
--- a/EDMI_ClientSuite/License/LicenseSchema.xsd
+++ b/Modules.License/LicenseSchema.xsd
@@ -47,5 +47,5 @@
-
+
diff --git a/Modules.License/My Project/Application.Designer.vb b/Modules.License/My Project/Application.Designer.vb
new file mode 100644
index 00000000..8ab460ba
--- /dev/null
+++ b/Modules.License/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
+'
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/Modules.License/My Project/Application.myapp b/Modules.License/My Project/Application.myapp
new file mode 100644
index 00000000..758895de
--- /dev/null
+++ b/Modules.License/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/Modules.License/My Project/AssemblyInfo.vb b/Modules.License/My Project/AssemblyInfo.vb
new file mode 100644
index 00000000..8a2b13b6
--- /dev/null
+++ b/Modules.License/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Allgemeine Informationen über eine Assembly werden über die folgenden
+' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+' die einer Assembly zugeordnet sind.
+
+' Werte der Assemblyattribute überprüfen
+
+
+
+
+
+
+
+
+
+
+'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
+
+
+' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+'
+' Hauptversion
+' Nebenversion
+' Buildnummer
+' Revision
+'
+' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+' übernehmen, indem Sie "*" eingeben:
+'
+
+
+
diff --git a/Modules.License/My Project/Resources.Designer.vb b/Modules.License/My Project/Resources.Designer.vb
new file mode 100644
index 00000000..56b61925
--- /dev/null
+++ b/Modules.License/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
+'
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
+ '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
+ 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
+ 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
+ '''
+ ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.License.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
+ ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/Modules.License/My Project/Resources.resx b/Modules.License/My Project/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/Modules.License/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Modules.License/My Project/Settings.Designer.vb b/Modules.License/My Project/Settings.Designer.vb
new file mode 100644
index 00000000..de8d4535
--- /dev/null
+++ b/Modules.License/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
+'
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "Automatische My.Settings-Speicherfunktion"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.DigitalData.Modules.License.My.MySettings
+ Get
+ Return Global.DigitalData.Modules.License.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/Modules.License/My Project/Settings.settings b/Modules.License/My Project/Settings.settings
new file mode 100644
index 00000000..85b890b3
--- /dev/null
+++ b/Modules.License/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Modules.License/packages.config b/Modules.License/packages.config
new file mode 100644
index 00000000..f89fa324
--- /dev/null
+++ b/Modules.License/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file