diff --git a/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj b/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj
index d944e534..cf7e04a3 100644
--- a/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj
+++ b/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj
@@ -233,12 +233,8 @@
StatusBarV.xaml
-
- ActiveStrategyListBoxV.xaml
-
-
- DeactivateStrategyListBoxV.xaml
-
+
+ ParameterStrategyV.xaml
@@ -725,14 +721,6 @@
MSBuild:CompileDesigner
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
- DesignerMSBuild:Compile
diff --git a/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb b/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb
index e7003abf..4de08b36 100644
--- a/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb
+++ b/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb
@@ -133,7 +133,7 @@ Public Class SaveAsStrategyVM
' Controllo se il file non è vuoto
Dim sFileNameCustomConfig As String = If(String.IsNullOrEmpty(m_sFileNameCustomConfig), CUSTOMERCONFIG_FILE, m_sFileNameCustomConfig)
' Crea il file JSON
- Map.refStrategyManagerVM.CreateCustumerConfigJsonFile(sFileNameCustomConfig)
+ 'Map.refStrategyManagerVM.CreateCustumerConfigJsonFile(sFileNameCustomConfig)
' Se il file ha un nome valido, aggiorna la configurazione
If Not String.IsNullOrEmpty(m_sFileNameCustomConfig) Then
' Aggiungo nuovo file a combobox elenco file
diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb b/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb
new file mode 100644
index 00000000..2a66e8e2
--- /dev/null
+++ b/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb
@@ -0,0 +1,373 @@
+Imports EgtWPFLib5
+Imports Newtonsoft.Json
+Imports System.Collections.ObjectModel
+
+'----------- Classe che fa riferimento alle Feature del file Json -----------
+Public Class JsonAvailableStrategyFeature
+ Inherits VMBase
+
+#Region "FIELDS & PROPETIES"
+
+ Private m_sName As String
+ Public Property sName As String
+ Get
+ Return m_sName
+ End Get
+ Set(value As String)
+ m_sName = value
+ NotifyPropertyChanged(NameOf(sName))
+ End Set
+ End Property
+
+ Private m_nPRC As Integer
+ Public Property nPRC As Integer
+ Get
+ Return m_nPRC
+ End Get
+ Set(value As Integer)
+ m_nPRC = value
+ NotifyPropertyChanged(NameOf(nPRC))
+ End Set
+ End Property
+
+ Private m_nGRP As Integer
+ Public Property nGRP As Integer
+ Get
+ Return m_nGRP
+ End Get
+ Set(value As Integer)
+ m_nGRP = value
+ NotifyPropertyChanged(NameOf(nGRP))
+ End Set
+ End Property
+
+ Private m_TopologyList As New ObservableCollection(Of JsonAvailableTopology)
+ Public Property TopologyList As ObservableCollection(Of JsonAvailableTopology)
+ Get
+ Return m_TopologyList
+ End Get
+ Set(value As ObservableCollection(Of JsonAvailableTopology))
+ m_TopologyList = value
+ NotifyPropertyChanged(NameOf(TopologyList))
+ End Set
+ End Property
+
+#End Region ' Fields & Propeties
+
+
+ Sub New(sName As String, nPRC As Integer, nGRP As Integer)
+ m_sName = sName
+ m_nPRC = nPRC
+ m_nGRP = nGRP
+ End Sub
+
+ Sub New(StrategyFeature As StrategyFeature)
+ m_sName = StrategyFeature.sName
+ m_nPRC = StrategyFeature.nPRC
+ m_nGRP = StrategyFeature.nGRP
+ For Each Topology In StrategyFeature.TopologyList
+ m_TopologyList.Add(New JsonAvailableTopology(Topology))
+ Next
+ End Sub
+
+End Class
+
+'----------- Classe che fa riferimento alle Topologie delle Feature del file Json -----------
+Public Class JsonAvailableTopology
+ Inherits VMBase
+
+#Region "FIELDS & PROPETIES"
+
+ Private m_sName As String
+ Public Property sName As String
+ Get
+ Return m_sName
+ End Get
+ Set(value As String)
+ m_sName = value
+ NotifyPropertyChanged(NameOf(sName))
+ End Set
+ End Property
+
+ Private m_StrategyList As New ObservableCollection(Of JsonAvailableStrategy)
+ Public Property StrategyList As ObservableCollection(Of JsonAvailableStrategy)
+ Get
+ Return m_StrategyList
+ End Get
+ Set(value As ObservableCollection(Of JsonAvailableStrategy))
+ m_StrategyList = value
+ NotifyPropertyChanged(NameOf(StrategyList))
+ End Set
+ End Property
+
+#End Region ' Fields & Propeties
+
+
+ Sub New(sName As String)
+ m_sName = sName
+ End Sub
+
+ Sub New(Topology As Topology)
+ m_sName = Topology.sName
+ For Each Strategy In Topology.StrategyList
+ m_StrategyList.Add(New JsonAvailableStrategy(Strategy))
+ Next
+ End Sub
+
+End Class
+
+'----------- Classe che fa alle Strategie delle Topologie delle Feature del file Json -----------
+Public Class JsonAvailableStrategy
+ Inherits VMBase
+
+#Region "FIELDS & PROPETIES"
+
+ Private m_sStrategyID As String
+ Public Property sStrategyID As String
+ Get
+ Return m_sStrategyID
+ End Get
+ Set(value As String)
+ m_sStrategyID = value
+ NotifyPropertyChanged(NameOf(sStrategyID))
+ End Set
+ End Property
+
+ Private m_nIndexInList As Integer = -1
+ Public Property nIndexInList As Integer
+ Get
+ Return m_nIndexInList
+ End Get
+ Set(value As Integer)
+ m_nIndexInList = value
+ NotifyPropertyChanged(NameOf(nIndexInList))
+ End Set
+ End Property
+
+ Private m_bActive As Boolean
+ Public Property bActive As Boolean
+ Get
+ Return m_bActive
+ End Get
+ Set(value As Boolean)
+ m_bActive = value
+ NotifyPropertyChanged(NameOf(bActive))
+ End Set
+ End Property
+
+ Private m_ParameterList As New ObservableCollection(Of JsonAvailableGenericParameter)
+ Public Property ParameterList As ObservableCollection(Of JsonAvailableGenericParameter)
+ Get
+ Return m_ParameterList
+ End Get
+ Set(value As ObservableCollection(Of JsonAvailableGenericParameter))
+ m_ParameterList = value
+ NotifyPropertyChanged(NameOf(ParameterList))
+ End Set
+ End Property
+
+#End Region ' Fields & Propeties
+
+
+ Sub New(sStrategyID As String, nIndexInList As Integer)
+ m_sStrategyID = sStrategyID
+ m_nIndexInList = nIndexInList
+ End Sub
+
+ Sub New(Strategy As Strategy)
+ m_sStrategyID = Strategy.sStrategyID
+ m_nIndexInList = Strategy.nIndexInList
+ For Each Parameter In Strategy.ParameterList
+ m_ParameterList.Add(New JsonAvailableGenericParameter(Parameter))
+ Next
+ End Sub
+
+End Class
+
+'----------- Classe che fa riferimento ai parametri delle Strategie nel file Json -----------
+Public Class JsonAvailableGenericParameter
+ Inherits VMBase
+
+#Region "FIELDS & PROPETIES"
+
+ Private m_sName As String
+ Public Property sName As String
+ Get
+ Return m_sName
+ End Get
+ Set(value As String)
+ m_sName = value
+ NotifyPropertyChanged(NameOf(sName))
+ End Set
+ End Property
+
+ Private m_sNameNge As String
+ Public Property sNameNge As String
+ Get
+ Return m_sNameNge
+ End Get
+ Set(value As String)
+ m_sNameNge = value
+ NotifyPropertyChanged(NameOf(sNameNge))
+ End Set
+ End Property
+
+ Private m_sValue As String
+ Public Property sValue As String
+ Get
+ Return m_sValue
+ End Get
+ Set(value As String)
+ m_sValue = value
+ NotifyPropertyChanged(NameOf(sValue))
+ End Set
+ End Property
+
+ Private m_sDescriptionShort As String
+ Public Property sDescriptionShort As String
+ Get
+ Return m_sDescriptionShort
+ End Get
+ Set(value As String)
+ m_sDescriptionShort = value
+ NotifyPropertyChanged(NameOf(sDescriptionShort))
+ End Set
+ End Property
+
+ Private m_sDescriptionLong As String
+ Public Property sDescriptionLong As String
+ Get
+ Return m_sDescriptionLong
+ End Get
+ Set(value As String)
+ m_sDescriptionLong = value
+ NotifyPropertyChanged(NameOf(sDescriptionLong))
+ End Set
+ End Property
+
+ Private m_sType As String
+ Public Property sType As String
+ Get
+ Return m_sType
+ End Get
+ Set(value As String)
+ m_sType = value
+ NotifyPropertyChanged(NameOf(sType))
+ End Set
+ End Property
+
+ Private m_sMessageId As String
+ Public Property sMessageId As String
+ Get
+ Return m_sMessageId
+ End Get
+ Set(value As String)
+ m_sMessageId = value
+ NotifyPropertyChanged(NameOf(sMessageId))
+ End Set
+ End Property
+
+ Private m_sMinUserLevel As Integer
+ Public Property sMinUserLevel As Integer
+ Get
+ Return m_sMinUserLevel
+ End Get
+ Set(value As Integer)
+ m_sMinUserLevel = value
+ NotifyPropertyChanged(NameOf(sMinUserLevel))
+ End Set
+ End Property
+
+ Private m_Choices As New ObservableCollection(Of JsonAvailableChoiceParameter)
+ Public Property Choices As ObservableCollection(Of JsonAvailableChoiceParameter)
+ Get
+ Return m_Choices
+ End Get
+ Set(value As ObservableCollection(Of JsonAvailableChoiceParameter))
+ m_Choices = value
+ NotifyPropertyChanged(NameOf(Choices))
+ End Set
+ End Property
+
+#End Region ' Fields & Propeties
+
+
+ Sub New(sName As String, sNameNge As String, sValue As String, sDescriptionShort As String, sDescriptionLong As String, sType As String, sMessageId As String, sMinUserLevel As Integer)
+ m_sName = sName
+ m_sNameNge = sNameNge
+ m_sValue = sValue
+ m_sDescriptionShort = sDescriptionShort
+ m_sDescriptionLong = sDescriptionLong
+ m_sType = sType
+ m_sMessageId = sMessageId
+ m_sMinUserLevel = sMinUserLevel
+ End Sub
+
+ Sub New(StrategyParameter As StrategyParameter)
+ m_sName = StrategyParameter.sName
+ m_sNameNge = StrategyParameter.sNameNge
+ Select Case StrategyParameter.GetType()
+ Case GetType(BooleanStrategyParameter)
+ m_sValue = If(DirectCast(StrategyParameter, BooleanStrategyParameter).bValue, "true", "false")
+ Case GetType(DoubleStrategyParameter)
+ m_sValue = DirectCast(StrategyParameter, DoubleStrategyParameter).sValue
+ Case GetType(ComboStrategyParameter)
+ m_sValue = DirectCast(StrategyParameter, ComboStrategyParameter).SelValue.sValue
+ End Select
+ m_sDescriptionShort = StrategyParameter.sDescriptionShort
+ m_sDescriptionLong = StrategyParameter.sDescriptionLong
+ m_sMessageId = StrategyParameter.sMessageId
+ m_sMinUserLevel = StrategyParameter.sMinUserLevel
+ End Sub
+
+End Class
+
+'----------- Classe che fa riferimento ai parametri delle Scelte nel file Json -----------
+Public Class JsonAvailableChoiceParameter
+ Inherits VMBase
+
+ Private m_sValue As String
+ Public Property sValue As String
+ Get
+ Return m_sValue
+ End Get
+ Set(value As String)
+ m_sValue = value
+ NotifyPropertyChanged(NameOf(sValue))
+ End Set
+ End Property
+
+ Private m_sDescriptionShort As String
+ Public Property sDescriptionShort As String
+ Get
+ Return m_sDescriptionShort
+ End Get
+ Set(value As String)
+ m_sDescriptionShort = value
+ NotifyPropertyChanged(NameOf(sDescriptionShort))
+ End Set
+ End Property
+
+ Private m_sDescriptionLong As String
+ Public Property sDescriptionLong As String
+ Get
+ Return m_sDescriptionLong
+ End Get
+ Set(value As String)
+ m_sDescriptionLong = value
+ NotifyPropertyChanged(NameOf(sDescriptionLong))
+ End Set
+ End Property
+
+ Private m_sMessageId As String
+ Public Property sMessageId As String
+ Get
+ Return m_sMessageId
+ End Get
+ Set(value As String)
+ m_sMessageId = value
+ NotifyPropertyChanged(NameOf(sMessageId))
+ End Set
+ End Property
+
+End Class
diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/JsonStrategyHelper.vb b/EgtBEAMWALL.Optimizer/StrategyManager/JsonStrategyHelper.vb
new file mode 100644
index 00000000..6fff8d43
--- /dev/null
+++ b/EgtBEAMWALL.Optimizer/StrategyManager/JsonStrategyHelper.vb
@@ -0,0 +1,3 @@
+Public Class JsonStrategyHelper
+
+End Class
diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml b/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml
index 6a358b28..330b426b 100644
--- a/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml
+++ b/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml
@@ -8,44 +8,45 @@
-
+
+ Margin="5,2,5,0">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml
index 7e168450..9a8b9976 100644
--- a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml
+++ b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml
@@ -16,6 +16,12 @@
SelectedItem="{Binding SelStrategySetup}"
DisplayMemberPath="sName"
Style="{StaticResource Strategy_ComboBox}"/>
+