297 lines
7.7 KiB
VB.net
297 lines
7.7 KiB
VB.net
Imports Newtonsoft.Json
|
|
Imports EgtWPFLib5
|
|
Imports System.Collections.ObjectModel
|
|
|
|
'----------- Classe che fa riferimento alle Feature del file Json -----------
|
|
Public Class JsonStrategyFeature
|
|
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 JsonTopology)
|
|
Public Property TopologyList As ObservableCollection(Of JsonTopology)
|
|
Get
|
|
Return m_TopologyList
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonTopology))
|
|
m_TopologyList = value
|
|
NotifyPropertyChanged(NameOf(TopologyList))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
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 JsonTopology(Topology))
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento alle Topologie delle Feature del file Json -----------
|
|
Public Class JsonTopology
|
|
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 JsonStrategy)
|
|
Public Property StrategyList As ObservableCollection(Of JsonStrategy)
|
|
Get
|
|
Return m_StrategyList
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonStrategy))
|
|
m_StrategyList = value
|
|
NotifyPropertyChanged(NameOf(StrategyList))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
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 JsonStrategy(Strategy))
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa alle Strategie delle Topologie delle Feature del file Json -----------
|
|
Public Class JsonStrategy
|
|
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_ParameterList As New ObservableCollection(Of JsonStrategyParameter)
|
|
Public Property ParameterList As ObservableCollection(Of JsonStrategyParameter)
|
|
Get
|
|
Return m_ParameterList
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonStrategyParameter))
|
|
m_ParameterList = value
|
|
NotifyPropertyChanged(NameOf(ParameterList))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
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 JsonStrategyParameter(Parameter))
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento ai parametri delle Strategie nel file Json -----------
|
|
Public Class JsonStrategyParameter
|
|
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_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_sSubType As String
|
|
Public Property sSubType As String
|
|
Get
|
|
Return m_sSubType
|
|
End Get
|
|
Set(value As String)
|
|
m_sSubType = value
|
|
NotifyPropertyChanged(NameOf(sSubType))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_sMinUserLevel As Integer
|
|
<JsonIgnore>
|
|
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
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sName As String, sNameNge As String, sValue As String, sType As String, sSubType As String, nMinUserLevel As Integer)
|
|
m_sName = sName
|
|
m_sNameNge = sNameNge
|
|
m_sValue = sValue
|
|
m_sType = sType
|
|
m_sSubType = sSubType
|
|
m_sMinUserLevel = nMinUserLevel
|
|
End Sub
|
|
|
|
Sub New(StrategyParameter As StrategyParameter)
|
|
m_sName = StrategyParameter.sName
|
|
m_sNameNge = StrategyParameter.sNameNge
|
|
m_sSubType = StrategyParameter.sSubType
|
|
m_sMinUserLevel = StrategyParameter.sMinUserLevel
|
|
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
|
|
Case GetType(StringStrategyParameter)
|
|
m_sValue = DirectCast(StrategyParameter, StringStrategyParameter).sValue
|
|
Case GetType(ListStrategyParameter)
|
|
m_sValue = DirectCast(StrategyParameter, ListStrategyParameter).SelValue.sName
|
|
End Select
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|