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