e10ab83e4b
-ripristinato intestazione in tabella updatebtl -gestito updatebtl da rivedere
515 lines
15 KiB
VB.net
515 lines
15 KiB
VB.net
Imports EgtWPFLib5
|
|
Imports EgtUILib
|
|
Imports Newtonsoft.Json
|
|
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
|
|
'----------- 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
|
|
|
|
#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 JsonAvailableTopology(Topology))
|
|
Next
|
|
End Sub
|
|
|
|
Friend Function Deserialize() As StrategyFeature
|
|
Dim StrategyFeature As New StrategyFeature() With {.sName = m_sName,
|
|
.nPrc = m_nPrc,
|
|
.nGrp = m_nGrp}
|
|
For Each Topology In TopologyList
|
|
StrategyFeature.TopologyList.Add(Topology.Deserialize())
|
|
Next
|
|
Return StrategyFeature
|
|
End Function
|
|
|
|
#End Region ' Constructor
|
|
|
|
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
|
|
|
|
#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 JsonAvailableStrategy(Strategy))
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Function Deserialize() As Topology
|
|
Dim Topology As New Topology() With {.sName = m_sName}
|
|
For StrategyIndex = 0 To StrategyList.Count - 1
|
|
Topology.StrategyList.Add(StrategyList(StrategyIndex).Deserialize(StrategyIndex))
|
|
Next
|
|
Topology.CreateStrategyViews()
|
|
Return Topology
|
|
End Function
|
|
|
|
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
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sStrategyID As String)
|
|
m_sStrategyId = sStrategyID
|
|
End Sub
|
|
|
|
Sub New(Strategy As Strategy)
|
|
m_sStrategyId = Strategy.sStrategyId
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Function Deserialize(StrategyIndex As Integer) As Strategy
|
|
Dim Strategy As New Strategy() With {.sStrategyId = m_sStrategyId,
|
|
.nIndexInList = StrategyIndex}
|
|
' Recupero file StrategyJson
|
|
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & sStrategyId & "\" & sStrategyId & ".json"
|
|
' Controllo se il file esiste
|
|
If Not File.Exists(StrategyPath) Then
|
|
EgtOutLog("Error! Strategy file not found! " & m_sStrategyId)
|
|
End If
|
|
' Leggo il contenuto del file JSON e deserializzo
|
|
Dim StrategyJson As String = File.ReadAllText(StrategyPath)
|
|
Dim strategyConfig As JsonDefaultStrategy = JsonConvert.DeserializeObject(Of JsonDefaultStrategy)(StrategyJson)
|
|
Strategy.sStrategyName = strategyConfig.sStrategyName
|
|
Dim sImagePath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & sStrategyId & "\" & sStrategyId & ".png"
|
|
If File.Exists(sImagePath) Then
|
|
Strategy.sStrategyImagePath = sImagePath
|
|
End If
|
|
If strategyConfig.sStrategyId <> m_sStrategyId Then EgtOutLog("Error! Strategy name wrong in " & m_sStrategyId)
|
|
For Each Parameter In strategyConfig.ParameterList
|
|
Strategy.ParameterList.Add(Parameter.Deserialize())
|
|
Next
|
|
Return Strategy
|
|
End Function
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa alle Strategie delle Topologie delle Feature del file Json -----------
|
|
Public Class JsonDefaultStrategy
|
|
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
|
|
End Set
|
|
End Property
|
|
|
|
Private m_sStrategyName As String
|
|
Public Property sStrategyName As String
|
|
Get
|
|
Return m_sStrategyName
|
|
End Get
|
|
Set(value As String)
|
|
m_sStrategyName = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ParameterList As New ObservableCollection(Of JsonDefaultStrategyParameter)
|
|
Public Property ParameterList As ObservableCollection(Of JsonDefaultStrategyParameter)
|
|
Get
|
|
Return m_ParameterList
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonDefaultStrategyParameter))
|
|
m_ParameterList = value
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sStrategyId As String, sStrategyName As String)
|
|
m_sStrategyId = sStrategyId
|
|
m_sStrategyName = sStrategyName
|
|
End Sub
|
|
|
|
Sub New(Strategy As Strategy)
|
|
m_sStrategyId = Strategy.sStrategyId
|
|
For Each Parameter In Strategy.ParameterList
|
|
m_ParameterList.Add(New JsonDefaultStrategyParameter(Parameter))
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento ai parametri delle Strategie nel file Json -----------
|
|
Public Class JsonDefaultStrategyParameter
|
|
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 JsonDefaultComboParameter)
|
|
Public Property Choices As ObservableCollection(Of JsonDefaultComboParameter)
|
|
Get
|
|
Return m_Choices
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonDefaultComboParameter))
|
|
m_Choices = value
|
|
NotifyPropertyChanged(NameOf(Choices))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
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
|
|
Case GetType(StringStrategyParameter)
|
|
m_sValue = DirectCast(StrategyParameter, StringStrategyParameter).sValue
|
|
End Select
|
|
m_sDescriptionShort = StrategyParameter.sDescriptionShort
|
|
m_sDescriptionLong = StrategyParameter.sDescriptionLong
|
|
m_sMessageId = StrategyParameter.sMessageId
|
|
m_sMinUserLevel = StrategyParameter.sMinUserLevel
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Function Deserialize() As StrategyParameter
|
|
Dim StrategyParameter As StrategyParameter = Nothing
|
|
Select Case m_sType
|
|
Case "b"
|
|
StrategyParameter = New BooleanStrategyParameter()
|
|
DirectCast(StrategyParameter, BooleanStrategyParameter).SetValue(m_sValue)
|
|
Case "d"
|
|
StrategyParameter = New DoubleStrategyParameter()
|
|
DirectCast(StrategyParameter, DoubleStrategyParameter).SetValue(m_sValue)
|
|
Case "combo"
|
|
StrategyParameter = New ComboStrategyParameter()
|
|
For Each Choice In Choices
|
|
DirectCast(StrategyParameter, ComboStrategyParameter).ComboList.Add(Choice.Deserialize())
|
|
Next
|
|
DirectCast(StrategyParameter, ComboStrategyParameter).SetSelValue(m_sValue)
|
|
Case "tool"
|
|
' Da sistemare!!!
|
|
StrategyParameter = New DoubleStrategyParameter()
|
|
DirectCast(StrategyParameter, DoubleStrategyParameter).SetValue(m_sValue)
|
|
Case "s"
|
|
StrategyParameter = New StringStrategyParameter()
|
|
DirectCast(StrategyParameter, StringStrategyParameter).SetValue(m_sValue)
|
|
End Select
|
|
StrategyParameter.sName = m_sName
|
|
StrategyParameter.sNameNge = m_sNameNge
|
|
StrategyParameter.sDescriptionShort = m_sDescriptionShort
|
|
StrategyParameter.sDescriptionLong = m_sDescriptionLong
|
|
StrategyParameter.sMessageId = m_sMessageId
|
|
StrategyParameter.sMinUserLevel = m_sMinUserLevel
|
|
Return StrategyParameter
|
|
End Function
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento ai parametri delle Scelte nel file Json -----------
|
|
Public Class JsonDefaultComboParameter
|
|
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
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sValue As String, sDescriptionShort As String, sDescriptionLong As String, sMessageId As String)
|
|
m_sValue = sValue
|
|
m_sDescriptionShort = sDescriptionShort
|
|
m_sDescriptionLong = sDescriptionLong
|
|
m_sMessageId = sMessageId
|
|
End Sub
|
|
|
|
Sub New(ComboParameter As ComboParameter)
|
|
m_sValue = ComboParameter.sValue
|
|
m_sDescriptionShort = ComboParameter.sDescriptionShort
|
|
m_sDescriptionLong = ComboParameter.sDescriptionLong
|
|
m_sMessageId = ComboParameter.sMessageId
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Function Deserialize() As ComboParameter
|
|
Dim ComboParameter As New ComboParameter() With {.sValue = m_sValue,
|
|
.sDescriptionShort = m_sDescriptionShort,
|
|
.sDescriptionLong = m_sDescriptionLong,
|
|
.sMessageId = m_sMessageId}
|
|
Return ComboParameter
|
|
End Function
|
|
|
|
End Class
|