diff --git a/Supervisor/App.config b/Supervisor/App.config
index 56efbc7..a8cec0b 100644
--- a/Supervisor/App.config
+++ b/Supervisor/App.config
@@ -1,6 +1,22 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Supervisor/Constants/ConstIni.vb b/Supervisor/Constants/ConstIni.vb
index 8c41db7..338dbd5 100644
--- a/Supervisor/Constants/ConstIni.vb
+++ b/Supervisor/Constants/ConstIni.vb
@@ -26,6 +26,7 @@ Module ConstIni
Public Const K_INITLUA As String = "InitLua"
Public Const S_REDIS As String = "Redis"
+ Public Const K_ENABLED As String = "Enabled"
Public Const K_DBINDEX As String = "DbIndex"
End Module
diff --git a/Supervisor/LUA/Lua_General.vb b/Supervisor/LUA/Lua_General.vb
index 1a6b708..204c41f 100644
--- a/Supervisor/LUA/Lua_General.vb
+++ b/Supervisor/LUA/Lua_General.vb
@@ -161,23 +161,27 @@ Public Module Lua_General
Private Function Lua_RdsStringGet(ByVal p As IntPtr) As Integer
Dim state = Lua.FromIntPtr(p)
+ If IsNothing(Map.refMainWindowVM.RedisManager) OrElse IsNothing(Map.refMainWindowVM.RedisManager.Subscriber) Then
+ EgtOutLog("Error! Trying to get string from a non existent redis!")
+ LuaSetParam(state)
+ Return 1
+ End If
' 1 parametro: sKey
Dim sKey As String = ""
LuaCheckParam(state, 1, sKey)
LuaClearStack(state)
Dim Result As RedisValue
- If Not IsNothing(Map.refMainWindowVM.RedisManager.Subscriber) Then
- Result = Map.refMainWindowVM.RedisManager.RedisDb.StringGet(sKey)
- ' restituisco il risultato
- LuaSetParam(state, Result)
- Else
- ' restituisco il risultato
- LuaSetParam(state, "")
- End If
+ Result = Map.refMainWindowVM.RedisManager.RedisDb.StringGet(sKey)
+ ' restituisco il risultato
+ LuaSetParam(state, Result)
Return 1
End Function
Private Function Lua_RdsStringSetAsync(ByVal p As IntPtr) As Integer
+ If IsNothing(Map.refMainWindowVM.RedisManager) OrElse IsNothing(Map.refMainWindowVM.RedisManager.Subscriber) Then
+ EgtOutLog("Error! Trying to set string on a non existent redis!")
+ Return 0
+ End If
Dim state = Lua.FromIntPtr(p)
' 2 parametri: sKey, sVal
Dim sKey As String = ""
@@ -185,11 +189,15 @@ Public Module Lua_General
LuaCheckParam(state, 1, sKey)
LuaCheckParam(state, 2, sVal)
LuaClearStack(state)
- If Not IsNothing(Map.refMainWindowVM.RedisManager.Subscriber) Then Map.refMainWindowVM.RedisManager.RedisDb.StringSetAsync(sKey, sVal)
+ Map.refMainWindowVM.RedisManager.RedisDb.StringSetAsync(sKey, sVal)
Return 0
End Function
Private Function Lua_RdsPublishAsync(ByVal p As IntPtr) As Integer
+ If IsNothing(Map.refMainWindowVM.RedisManager) OrElse IsNothing(Map.refMainWindowVM.RedisManager.Subscriber) Then
+ EgtOutLog("Error! Trying to publish on a non existent redis!")
+ Return 0
+ End If
Dim state = Lua.FromIntPtr(p)
' 2 parametri: sKey, sVal
Dim sChannel As String = ""
@@ -197,7 +205,7 @@ Public Module Lua_General
LuaCheckParam(state, 1, sChannel)
LuaCheckParam(state, 2, sMessage)
LuaClearStack(state)
- If Not IsNothing(Map.refMainWindowVM.RedisManager.Subscriber) Then Map.refMainWindowVM.RedisManager.Subscriber.PublishAsync(sChannel, sMessage)
+ Map.refMainWindowVM.RedisManager.Subscriber.PublishAsync(sChannel, sMessage)
Return 0
End Function
diff --git a/Supervisor/MainWindow/MainWindowVM.vb b/Supervisor/MainWindow/MainWindowVM.vb
index a80a69e..f8009be 100644
--- a/Supervisor/MainWindow/MainWindowVM.vb
+++ b/Supervisor/MainWindow/MainWindowVM.vb
@@ -48,26 +48,31 @@ Public Class MainWindowVM
' creo gestore delle macchine a stati
m_FiniteStateMachineManager = New FiniteStateMachineManager
+ If GetMainPrivateProfileInt(S_REDIS, K_ENABLED, 0) = 1 Then
+ m_RedisManager = New RedisManager
+ End If
- m_RedisManager = New RedisManager
-
- Dim PluginUI As IPluginControl = GetControlByName(Of IPluginControl)("Supervisor.Plugin.FiveLakes")
- ContentPanel = PluginUI
+ ' aggiungo Dictionary del plugin
+ Dim PluginDictionary As IPluginControl = GetDictionary(Of IPluginControl)("Supervisor.Plugin.FiveLakes")
+ Application.Current.Resources.MergedDictionaries.Add(PluginDictionary)
+ ' aggiungo MainMenu dal plugin
+ Dim PluginMainMenu As IPluginControl = GetControlByName(Of IPluginControl)("Supervisor.Plugin.FiveLakes", "MainMenu")
+ 'ContentPanel = PluginMainMenu
+ ' aggiungo Project dal plugin
+ Dim ProjectPlugin As IPluginControl = GetControlByName(Of IPluginControl)("Supervisor.Plugin.FiveLakes", "Project")
+ ContentPanel = ProjectPlugin
End Sub
#Region "Plugin"
Private m_Loader As MEFLoader = New MEFLoader()
- Private Function GetPathByName(ByVal name As String) As String
- 'Dim PluginNameSplit() As String = name.Split("."c)
- 'Dim res = MainWindowM.sDataRoot & "\Plugin\" & PluginNameSplit(0)
- Dim res = MainWindowM.sDataRoot & "\Plugin\" & name
- Return res
+ Private Function GetPathByName(sPluginFileName As String) As String
+ Return MainWindowM.sDataRoot & "\Plugin\" & sPluginFileName
End Function
- Friend Function GetControlByName(Of T)(sName As String) As Panel
- Dim PlugInControl As Object = m_Loader.LoadByTag(Of T)(GetPathByName(sName), sName).FirstOrDefault()
+ Friend Function GetControlByName(Of T)(sPluginFileName As String, sPluginTagName As String) As Panel
+ Dim PlugInControl As Object = m_Loader.LoadByTag(Of T)(GetPathByName(sPluginFileName), sPluginTagName).FirstOrDefault()
Dim PluginPanel As Panel = Nothing
If PlugInControl.GetType().BaseType.FullName = GetType(Panel).FullName OrElse PlugInControl.GetType().BaseType.FullName = GetType(Grid).FullName Then
PluginPanel = TryCast(PlugInControl, Panel)
@@ -75,6 +80,13 @@ Public Class MainWindowVM
Return PluginPanel
End Function
+ Friend Function GetDictionary(Of T)(sPluginFileName As String) As ResourceDictionary
+ Dim DictionaryControl As Object = m_Loader.LoadByTag(Of T)(GetPathByName(sPluginFileName), "Dictionary").FirstOrDefault()
+ Dim Dictionary As ResourceDictionary = Nothing
+ Dictionary = TryCast(DictionaryControl, ResourceDictionary)
+ Return DictionaryControl
+ End Function
+
#End Region ' Plugin
End Class
diff --git a/Supervisor/Supervisor.vbproj b/Supervisor/Supervisor.vbproj
index 3d7ac87..e69c71b 100644
--- a/Supervisor/Supervisor.vbproj
+++ b/Supervisor/Supervisor.vbproj
@@ -73,8 +73,8 @@
..\packages\KeraLua.1.4.1\lib\net46\KeraLua.dll
-
- ..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
+
+ ..\..\Plugin.Fivelakes\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll
@@ -95,8 +95,8 @@
True
True
-
- ..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll
+
+ ..\..\Plugin.Fivelakes\packages\System.IO.Pipelines.6.0.0\lib\net461\System.IO.Pipelines.dll
..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll
@@ -108,8 +108,8 @@
..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
-
- ..\packages\System.Threading.Channels.5.0.0\lib\net461\System.Threading.Channels.dll
+
+ ..\..\Plugin.Fivelakes\packages\System.Threading.Channels.6.0.0\lib\net461\System.Threading.Channels.dll
..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
diff --git a/Supervisor/Utility/Map.vb b/Supervisor/Utility/Map.vb
index fa22dee..8038908 100644
--- a/Supervisor/Utility/Map.vb
+++ b/Supervisor/Utility/Map.vb
@@ -1,10 +1,7 @@
-Imports EgtWPFLib5
-
+
Module Map
Private m_refMainWindowVM As MainWindowVM
- 'Private m_refMyStatusBarVM As MyStatusBarVM
- 'Private m_refProjManagerVM As ProjManagerVM
'Private m_refProjectVM As ProjectVM
'Private m_refSecondaryWindowVM As SecondaryWindowVM
'Private m_refSecondaryWindowV As SecondaryWindowV
diff --git a/Supervisor/packages.config b/Supervisor/packages.config
index adb8bb8..113b689 100644
--- a/Supervisor/packages.config
+++ b/Supervisor/packages.config
@@ -1,16 +1,16 @@
-
+
-
+
-
+
\ No newline at end of file