Imports System.Xml.Serialization
Imports DigitalData.Modules.Config.ConfigAttributes

''' <summary>
''' --- User Config for EDMI ---
''' 
''' All settings are simple properties that should have a default value where possible
''' 
''' More complex properties (for example, ServiceConnection) are built from simple ones,
''' should be readonly and have an `XmlIgnore` Attribute to prevent them from being saved to the config file.
''' 
''' They can make saving and loading complex properties more easy.
''' 
''' The config is loaded with `ConfigManager` which is initialized in ApplicationEvents 
''' to ensure that the config is loaded before any of the forms (that might need a config)
''' 
''' The config object can be accessed in two ways:
''' 
''' - My.ConfigManager.Config
''' - My.Config (which simply points to My.ConfigManager.Config)
''' 
''' After changing a config value, My.ConfigManager.Save() must be called to persist the change in the config file
''' </summary>
Public Class SystemConfig
    ' === Service Configuration ===
    <GlobalSetting>
    Public Property AppServerConfig As String = String.Empty

    ' === Logging Configuration
    Public Property LogDebug As Boolean = False

    ' === User Configuration ===
    Public Property UserLanguage As String = "de-DE"

    ' === Product Configuration ===
    Public Property ProductPaths As New ClassProductPaths

    Public Class ClassProductPaths
        Public ProcessManagerPath As String
        Public GlobalIndexerPath As String
        Public ClipboardWatcherPath As String
    End Class
End Class
