From 0b655aeb099347ef66253fc3334fa6557fb1096d Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Wed, 31 Jul 2024 18:39:49 +0200 Subject: [PATCH] - gestita abilitazione redis - aggiunto Dictionary plugin --- Supervisor/App.config | 18 +++++++++++++- Supervisor/Constants/ConstIni.vb | 1 + Supervisor/LUA/Lua_General.vb | 28 ++++++++++++++-------- Supervisor/MainWindow/MainWindowVM.vb | 34 ++++++++++++++++++--------- Supervisor/Supervisor.vbproj | 12 +++++----- Supervisor/Utility/Map.vb | 5 +--- Supervisor/packages.config | 6 ++--- 7 files changed, 69 insertions(+), 35 deletions(-) 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