Imports System.ServiceModel
Imports System.Threading
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference

Namespace My
    ''' <summary>
    ''' Extends the My Namespace
    ''' Example: My.LogConfig
    ''' </summary>
    <HideModuleName()>
    Module Extension
        Property SystemConfigManager As ConfigManager(Of ClassConfig)
        ReadOnly Property SysConfig As ClassConfig
            Get
                Return SystemConfigManager.Config
            End Get
        End Property

        Property UIConfigManager As ConfigManager(Of ClassUIConfig)
        ReadOnly Property UIConfig As ClassUIConfig
            Get
                Return UIConfigManager.Config
            End Get
        End Property

        Property LogConfig As LogConfig
        Property ChannelFactory As ChannelFactory(Of IEDMIServiceChannel)
        Property Channel As IEDMIServiceChannel
        Property MainForm As frmMain
        Property Common As ClassCommon
    End Module

    ''' <summary>
    ''' Extends the My.Application Namespace to hold Application State
    ''' Example: My.Application.User
    ''' </summary>
    Partial Class MyApplication
        ' User Config
        Public User As New ClassUserState()
        Public Service As New ClassServiceState()
    End Class
End Namespace


