Imports System.Collections.ObjectModel
Imports EgtWPFLib5
Imports Newtonsoft.Json
Imports System.IO
Imports EgtBEAMWALL.Core
Imports EgtUILib
Public Class StrategyManagerVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
#Region "AvailableStrategy"
' Lista che contiene il file json AvailableStrategyList
Private m_JsonStrategyFeatureList As New ObservableCollection(Of JsonStrategyFeature)
Public Property JsonStrategyFeatureList As ObservableCollection(Of JsonStrategyFeature)
Get
Return m_JsonStrategyFeatureList
End Get
Set(value As ObservableCollection(Of JsonStrategyFeature))
m_JsonStrategyFeatureList = value
NotifyPropertyChanged(NameOf(JsonStrategyFeatureList))
End Set
End Property
' Lista che contiene il file json AvailableStrategyList
Private m_AvailableStrategyList As New ObservableCollection(Of StrategyFeature)
Public Property AvailableStrategyList As ObservableCollection(Of StrategyFeature)
Get
Return m_AvailableStrategyList
End Get
Set(value As ObservableCollection(Of StrategyFeature))
m_AvailableStrategyList = value
NotifyPropertyChanged(NameOf(AvailableStrategyList))
End Set
End Property
#End Region ' AvailableStrategy
#Region "DeactivateStrategy"
' Lista che contiene le strategie che vengono rese non attive
Private m_DeactivateStrategyList As New ObservableCollection(Of Strategy)
Public Property DeactivateStrategyList As ObservableCollection(Of Strategy)
Get
Return m_DeactivateStrategyList
End Get
Set(value As ObservableCollection(Of Strategy))
m_DeactivateStrategyList = value
NotifyPropertyChanged(NameOf(DeactivateStrategyList))
End Set
End Property
' Seleziona l'elemento della lista StrategyList
Public m_SelectDeactivateStrategy As Strategy
Public Property SelectDeactivateStrategy As Strategy
Get
Return m_SelectDeactivateStrategy
End Get
Set(value As Strategy)
m_SelectDeactivateStrategy = value
m_SelectedStrategyParamList = m_SelectDeactivateStrategy
If Not IsNothing(m_SelectDeactivateStrategy) Then
GetTypeMode(m_SelectDeactivateStrategy)
End If
NotifyPropertyChanged(NameOf(SelectDeactivateStrategy))
NotifyPropertyChanged(NameOf(SelectedStrategyParamList))
End Set
End Property
Friend Sub SetSelectedStrategy(value As Strategy)
m_SelectDeactivateStrategy = value
m_SelectedStrategyParamList = value
NotifyPropertyChanged(NameOf(SelectDeactivateStrategy))
NotifyPropertyChanged(NameOf(SelectedStrategyParamList))
End Sub
' Seleziona l'elemento della lista StrategyList
Public m_SelectedStrategyParamList As Strategy
Public Property SelectedStrategyParamList As Strategy
Get
Return m_SelectedStrategyParamList
End Get
Set(value As Strategy)
m_SelectedStrategyParamList = value
NotifyPropertyChanged(NameOf(SelectedStrategyParamList))
End Set
End Property
#End Region ' DeactivateStrategy
#Region "CustomerConfiguration"
' Lista che contiene il file json AvailableStrategyList
Private m_CustomerConfigurationList As New ObservableCollection(Of StrategyFeature)
Public Property CustomerConfigurationList As ObservableCollection(Of StrategyFeature)
Get
Return m_CustomerConfigurationList
End Get
Set(value As ObservableCollection(Of StrategyFeature))
m_CustomerConfigurationList = value
NotifyPropertyChanged(NameOf(CustomerConfigurationList))
End Set
End Property
#End Region ' CustomerConfiguration
#Region "SelTreeItem"
' Permette di selezionare l'elemento dell'albero
Public m_SelTreeItem As Topology
Public Property SelTreeItem As Topology
Get
Return m_SelTreeItem
End Get
Set(value As Topology)
m_SelTreeItem = value
NotifyPropertyChanged(NameOf(SelTreeItem))
End Set
End Property
'''
''' Funzione che aggiorna la selezione dell'elemento dell'albero
'''
''' Elemento dell'albero
Friend Sub UpdateSelTreeItem(Item As Topology)
m_SelTreeItem = Item
' Riattivo pulsanti moveup e movedown
If m_ActiveStrategyList.Count > 0 Then
If Not m_MoveUpSelectedStrategyEnable Then
SetMoveUpSelectedStrategyVisibility(True)
End If
If Not m_MoveDownSelectedStrategyEnable Then
SetMoveDownSelectedStrategyVisibility(True)
End If
End If
NotifyPropertyChanged(NameOf(SelTreeItem))
End Sub
#End Region ' SelTreeItem
#Region "ActiveStrategy"
' Lista che contiene le strategie che vengono rese attive
Private m_ActiveStrategyList As New ObservableCollection(Of Strategy)
Public Property ActiveStrategyList As ObservableCollection(Of Strategy)
Get
Return m_ActiveStrategyList
End Get
Set(value As ObservableCollection(Of Strategy))
m_ActiveStrategyList = value
NotifyPropertyChanged(NameOf(ActiveStrategyList))
End Set
End Property
' Seleziona l'elemento della lista ActiveStrategyList
Public m_SelectedActiveStrategy As Strategy
Public Property SelectedActiveStrategy As Strategy
Get
Return m_SelectedActiveStrategy
End Get
Set(value As Strategy)
m_SelectedActiveStrategy = value
m_SelectedStrategyParamList = m_SelectedActiveStrategy
' Controllo se selezionato non è nullo
If Not IsNothing(m_SelectedActiveStrategy) Then
GetTypeMode(m_SelectedActiveStrategy)
End If
NotifyPropertyChanged(NameOf(SelectedActiveStrategy))
NotifyPropertyChanged(NameOf(SelectedStrategyParamList))
End Set
End Property
Friend Sub SetSelectedActiveStrategy(value As Strategy)
m_SelectedActiveStrategy = value
m_SelectedStrategyParamList = value
NotifyPropertyChanged(NameOf(SelectedActiveStrategy))
NotifyPropertyChanged(NameOf(SelectedStrategyParamList))
End Sub
#End Region ' ActiveStrategy
#Region "AISetup"
' Lista dei file json presenti nella cartella AISetUp
Private m_sAISetUpList As New ObservableCollection(Of String)
Public Property sAISetUpList As ObservableCollection(Of String)
Get
Return m_sAISetUpList
End Get
Set(value As ObservableCollection(Of String))
m_sAISetUpList = value
NotifyPropertyChanged(NameOf(sAISetUpList))
End Set
End Property
' File selezionato dalla lista AISetUpList
Private m_sSelectedAISetUp As String
Public Property sSelectedAISetUp As String
Get
Return m_sSelectedAISetUp
End Get
Set(value As String)
m_sSelectedAISetUp = value
If Not IsNothing(m_sSelectedAISetUp) Then
m_ActiveStrategyList.Clear()
m_DeactivateStrategyList.Clear()
ReadAvailableStrategyJson(m_sSelectedAISetUp)
End If
NotifyPropertyChanged(NameOf(sSelectedAISetUp))
End Set
End Property
#End Region ' AISetup
#Region "MoveCommad"
' Rende attivo o disattivo il pulsante moveup
Private m_MoveUpSelectedStrategyEnable As Boolean = True
Public ReadOnly Property MoveUpSelectedStrategyEnable As Boolean
Get
Return m_MoveUpSelectedStrategyEnable
End Get
End Property
Friend Sub SetMoveUpSelectedStrategyVisibility(value As Boolean)
m_MoveUpSelectedStrategyEnable = value
NotifyPropertyChanged(NameOf(MoveUpSelectedStrategyEnable))
End Sub
' Rende attivo o disattivo il pulsante movedown
Private m_MoveDownSelectedStrategyEnable As Boolean = True
Public ReadOnly Property MoveDownSelectedStrategyEnable As Boolean
Get
Return m_MoveDownSelectedStrategyEnable
End Get
End Property
Friend Sub SetMoveDownSelectedStrategyVisibility(value As Boolean)
m_MoveDownSelectedStrategyEnable = value
NotifyPropertyChanged(NameOf(MoveDownSelectedStrategyEnable))
End Sub
#End Region ' MoveCommand
#Region "ModifyStrategy"
' Utilizzato per indicare che viene effettuata una modifica
Private m_bIsModifyStrategy As Boolean = False
Public ReadOnly Property bIsModifyStrategy As Boolean
Get
Return m_bIsModifyStrategy
End Get
End Property
Friend Sub SetbIsModifyStrategy(value As Boolean)
m_bIsModifyStrategy = value
If m_bIsModifyStrategy Then
SetSaveImage("pack://application:,,,/Resources/NewPage/SaveModify.png")
Else
SetSaveImage("pack://application:,,,/Resources/ProjectManager/Save.png")
End If
NotifyPropertyChanged(NameOf(bIsModifyStrategy))
End Sub
' Immagine SaveCommand
Private m_SaveImage As String = "pack://application:,,,/Resources/ProjectManager/Save.png"
Public ReadOnly Property SaveImage As String
Get
Return m_SaveImage
End Get
End Property
Friend Sub SetSaveImage(value As String)
m_SaveImage = value
NotifyPropertyChanged(NameOf(SaveImage))
End Sub
#End Region ' ModifyStrategy
#Region "Messages"
Public ReadOnly Property SaveToolTip As String
Get
Return EgtMsg(30503)
End Get
End Property
Public ReadOnly Property SaveAsToolTip As String
Get
Return EgtMsg(30504)
End Get
End Property
#End Region ' Messages
' Definizione Comandi
Private m_AddSelectedStrategyCommand As ICommand
Private m_RemoveSelectedStrategyCommand As ICommand
Private m_OpenCommand As ICommand
Private m_SaveCommand As ICommand
Private m_OpenFileNameCustomConfigCommand As ICommand
Private m_MoveUpSelectedStrategyCommand As ICommand
Private m_MoveDownSelectedStrategyCommand As ICommand
#End Region ' Field & Properties
#Region "CONSTRUCTOR"
Sub New()
' Setto riferimento
Map.SetRefStrategyManagerVM(Me)
' Recupero i file contenti nella Cartella AISetup
m_sAISetUpList = GetFileNamesAISetup(Map.refMainWindowVM.MainWindowM.GetAISetupDirPath())
' Seleziono il primo file che trovo
If m_sAISetUpList.Count > 0 Then
m_sSelectedAISetUp = m_sAISetUpList(0)
End If
' Leggo file json strategie
If Not IsNothing(m_sSelectedAISetUp) Then
ReadAvailableStrategyJson(m_sSelectedAISetUp)
Else
ReadAvailableStrategyJson(CUSTOMERCONFIG_FILE)
End If
' Aggiorno elemento selezionato dall'albero
Topology.refUpdateSelTreeItem = AddressOf UpdateSelTreeItem
End Sub
#End Region ' Constructor
#Region "METHODS"
'''
''' Funzione che legge il file json AVAILABLESTRATEGYLIST
'''
Private Sub ReadAvailableStrategyJson(fileCostumerConfig As String)
' ------------------------------- Carico DefaultConfiguration --------------------------------------------
' Recupero file AvailableStrategyPathJson
Dim AvailableStrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStrategiesDirPath() & "\" & AVAILABLESTRATEGYLIST_FILE & ".json"
' Controllo se il file esisite
If File.Exists(AvailableStrategyPath) Then
' Leggo il contenuto del file JSON
Dim AvailableStrategyPathJson As String = File.ReadAllText(AvailableStrategyPath)
' Deserializza il JSON in un oggetto
m_JsonStrategyFeatureList = JsonConvert.DeserializeObject(Of ObservableCollection(Of JsonStrategyFeature))(AvailableStrategyPathJson)
' Aggiungo file alla lista
m_AvailableStrategyList = New ObservableCollection(Of StrategyFeature)((From JsonStrategyFeature In JsonStrategyFeatureList
Select New StrategyFeature(JsonStrategyFeature)).ToList())
' Leggo tutte le strategie presenti nelle feature
For Each AvailableStrategy As StrategyFeature In m_AvailableStrategyList
For Each TopologyStrategy As Topology In AvailableStrategy.TopologyList
For Each StrategyItem As Strategy In TopologyStrategy.StrategyList
ReadConfigurationStrategyJson(StrategyItem)
Next
Next
Next
' Leggo tutte le strategie presenti nelle feature per il file json
For Each JsonStrategyFeature As JsonStrategyFeature In m_JsonStrategyFeatureList
For Each JsonTopologyStrategy As JsonTopology In JsonStrategyFeature.TopologyList
For Each JsonStrategyItem As JsonStrategy In JsonTopologyStrategy.StrategyList
ReadConfigurationJsonStrategyJson(JsonStrategyItem)
Next
Next
Next
End If
' ------------------------------- Carico CustomConfigJson -------------------------------------------------
' Recupero percorso file json CustomConfigJson
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath()
' Recupero file json CustomConfigJson
Dim sCustomerConfigurationFilePath As String = sAISetupDirPath & "\" & fileCostumerConfig & ".json"
' Controllo se esiste
If File.Exists(sCustomerConfigurationFilePath) Then
' Leggo il file json
Dim sReadedFile As String = File.ReadAllText(sCustomerConfigurationFilePath)
' Deserializza il JSON in un oggetto
m_CustomerConfigurationList = JsonConvert.DeserializeObject(Of ObservableCollection(Of StrategyFeature))(sReadedFile)
' Controllo se le due liste sono uguali
If m_AvailableStrategyList.Select(Function(x) x.sName).SequenceEqual(m_CustomerConfigurationList.Select(Function(x) x.sName)) Then
'MessageBox.Show("OK")
Else
' Devo aggiornare la lista
End If
' Aggiorno la lista
m_AvailableStrategyList = m_CustomerConfigurationList
End If
'
For Each AvailableStrategy As StrategyFeature In m_AvailableStrategyList
For Each TopologyStrategy As Topology In AvailableStrategy.TopologyList
For Each StrategyItem As Strategy In TopologyStrategy.StrategyList
StrategyItem.SetIndexList(StrategyItem.nIndexInList)
For Each ParameterItem As GenericParameter In StrategyItem.ParameterList
If ParameterItem.sType = "combo" Then
If ParameterItem.Choices.Count > 0 Then
ParameterItem.SelectedChoice = ParameterItem.Choices.FirstOrDefault(Function(x) x.sValue = ParameterItem.sValue)
NotifyPropertyChanged(NameOf(ParameterItem.SelectedChoice))
End If
End If
Next
Next
Next
Next
NotifyPropertyChanged(NameOf(AvailableStrategyList))
End Sub
'''
''' Funzione che legge il file json delle strategie
'''
''' Item delle singole feature
Private Sub ReadConfigurationStrategyJson(SelectedStrategyItem As Strategy)
' Recupero file StrategyJson
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & SelectedStrategyItem.sStrategyID & "\" & SelectedStrategyItem.sStrategyID & ".json"
' Controllo se il file esiste
If File.Exists(StrategyPath) Then
' Leggo il contenuto del file JSON
Dim StrategyJson As String = File.ReadAllText(StrategyPath)
' Deserializza il JSON in un oggetto
Dim strategyConfig As JsonStrategy = JsonConvert.DeserializeObject(Of JsonStrategy)(StrategyJson)
' Assegno ParamList per poter visualizzarla da interfaccia
SelectedStrategyItem.ParameterList = New ObservableCollection(Of GenericParameter)((From Parameter In strategyConfig.ParameterList
Select New GenericParameter(Parameter)).ToList())
End If
End Sub
'''
''' Funzione che legge il file json delle strategie
'''
'''
Private Sub ReadConfigurationJsonStrategyJson(SelectedStrategyItem As JsonStrategy)
' Recupero file StrategyJson
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & SelectedStrategyItem.sStrategyID & "\" & SelectedStrategyItem.sStrategyID & ".json"
' Controllo se il file esiste
If File.Exists(StrategyPath) Then
' Leggo il contenuto del file JSON
Dim StrategyJson As String = File.ReadAllText(StrategyPath)
' Deserializza il JSON in un oggetto
Dim strategyConfig As JsonStrategy = JsonConvert.DeserializeObject(Of JsonStrategy)(StrategyJson)
' Assegno ParamList per poter visualizzarla da interfaccia
SelectedStrategyItem.ParameterList = strategyConfig.ParameterList
End If
End Sub
'''
''' Funzione per creare file json
'''
Friend Sub CreateCustumerConfigJsonFile(fileCostumerConfig As String)
m_JsonStrategyFeatureList = New ObservableCollection(Of JsonStrategyFeature)(m_AvailableStrategyList.Select(Function(x) ConvertToJsonStrategy(x)))
' Serializzazione in JSON
Dim AvailableStrategyListjsonFile As String = JsonConvert.SerializeObject(m_JsonStrategyFeatureList, Formatting.Indented)
' Scrittura su file
File.WriteAllText(Map.refMainWindowVM.MainWindowM.GetAISetupDirPath() & "\" & fileCostumerConfig & ".json", AvailableStrategyListjsonFile)
End Sub
'''
''' Funzione per convertire da AvailableStrategy a JsonAvailableStrategy
'''
'''
'''
Private Function ConvertToJsonStrategy(availableStrategy As StrategyFeature) As JsonStrategyFeature
Return New JsonStrategyFeature With {
.sName = availableStrategy.sName,
.nPRC = availableStrategy.nPRC,
.nGRP = availableStrategy.nGRP,
.TopologyList = New ObservableCollection(Of JsonTopology)(availableStrategy.TopologyList.Select(Function(x) ConvertToJsonTopology(x)))}
End Function
'''
''' Funzione per convertire da Topology a JsonTopology
'''
'''
'''
Private Function ConvertToJsonTopology(topology As Topology) As JsonTopology
Return New JsonTopology With {
.sName = topology.sName,
.StrategyList = New ObservableCollection(Of JsonStrategy)(topology.StrategyList.Select(Function(x) ConvertToJsonStrategyConfiguration(x)))
}
End Function
'''
''' Funzione per convertire da StrategyConfiguration a JsonStrategyConfiguration
'''
'''
'''
Private Function ConvertToJsonStrategyConfiguration(strategyConfiguration As Strategy) As JsonStrategy
Return New JsonStrategy With {
.sStrategyID = strategyConfiguration.sStrategyID,
.nIndexInList = strategyConfiguration.nIndexInList,
.bActive = strategyConfiguration.bActive,
.ParameterList = New ObservableCollection(Of JsonGenericParameter)(strategyConfiguration.ParameterList.Select(Function(x) ConvertToJsonParameter(x)))}
End Function
'''
''' Funzione per convertire da GenericParameter a JsonGenericParameter
'''
'''
'''
Private Function ConvertToJsonParameter(genericParameter As GenericParameter) As JsonGenericParameter
Return New JsonGenericParameter With {
.sName = genericParameter.sName,
.sNameNge = genericParameter.sNameNge,
.sValue = genericParameter.sValue,
.sDescriptionShort = genericParameter.sDescriptionShort,
.sDescriptionLong = genericParameter.sDescriptionLong,
.sType = genericParameter.sType,
.sMessageId = genericParameter.sMessageId,
.sMinUserLevel = genericParameter.sMinUserLevel,
.Choices = New ObservableCollection(Of JsonChoiceParameter)(genericParameter.Choices.Select(Function(x) ConvertToJsonChoiceParameter(x)))}
End Function
'''
''' Funzione per convertire da ChoicesParameter a JsonChoicesParameter
'''
'''
'''
Private Function ConvertToJsonChoiceParameter(choiceParameter As ChoiceParameter) As JsonChoiceParameter
Return New JsonChoiceParameter With {
.sValue = choiceParameter.sValue,
.sDescriptionShort = choiceParameter.sDescriptionShort,
.sDescriptionLong = choiceParameter.sDescriptionLong,
.sMessageId = choiceParameter.sMessageId}
End Function
'''
''' Funzione che permette di scegliere se il tipo è una checkbox, testo o combobox
'''
Private Sub GetTypeMode(SelectedStrategy As Strategy)
For Each ParamItem As GenericParameter In SelectedStrategy.ParameterList
' Controllo se il tipo è un booleano
Select Case ParamItem.sType
Case "b"
' Se si setto SelTypeValue per visualizzare la checkbox
ParamItem.SelTypeValue = 1
' Converto il parametro in un booleano
ParamItem.sValue = If(ParamItem.sValue = "1", "True", "False")
Boolean.Parse(ParamItem.sValue)
Case "combo"
' Se si setto SelTypeValue per visualizzare la combobox
ParamItem.SelTypeValue = 2
End Select
Next
End Sub
'''
''' Funzione che restituisce la lista dei file contenuti nella cartella AISetup
'''
''' Percorso AISetup
'''
Private Function GetFileNamesAISetup(AISetupPath As String) As ObservableCollection(Of String)
Dim AISetupFilesList As New ObservableCollection(Of String)
' Controlla se la cartella esiste
If Directory.Exists(AISetupPath) Then
' Ottieni tutti i file nella cartella
Dim AISetupFiles As String() = Directory.GetFiles(AISetupPath)
' Rimuovi l'estensione e aggiungi alla lista
For Each AISetupFile In AISetupFiles
AISetupFilesList.Add(Path.GetFileNameWithoutExtension(AISetupFile))
Next
Else
EgtOutLog("La cartella specificata non esiste.")
End If
Return AISetupFilesList
End Function
#End Region ' Methods
#Region "COMMANDS"
#Region "AddSelectedStrategyCommand"
Public ReadOnly Property AddSelectedStrategyCommand As ICommand
Get
If m_AddSelectedStrategyCommand Is Nothing Then
m_AddSelectedStrategyCommand = New Command(AddressOf AddSelectedStrategyToActiveStrategy)
End If
Return m_AddSelectedStrategyCommand
End Get
End Property
'''
''' Funzione che permette di aggiungere la strategia da StrategyList a ActiveStrategyList
'''
Public Sub AddSelectedStrategyToActiveStrategy()
' Controllo se SelectedStrategy non è nullo
If Not IsNothing(m_SelectDeactivateStrategy) Then
' Setto a true booleano per modifica
SetbIsModifyStrategy(True)
' Aggiungo a ActiveStrategyList strategia selezionata
m_ActiveStrategyList.Add(m_SelectDeactivateStrategy)
' Setto indice per capire che la strategia è stata spostata in ActiveStrategyList
m_SelectDeactivateStrategy.SetIndexList(m_ActiveStrategyList.Count - 1)
' Rimuovo da StrategyList la strategia precedentemente selezionata
m_DeactivateStrategyList.Remove(m_SelectDeactivateStrategy)
' metto il SelectedStrategy della lista DeactivateStrategyList a nullo
SetSelectedStrategy(Nothing)
' seleziono l'ultimo elemento inserito
SetSelectedActiveStrategy(m_ActiveStrategyList.Last())
NotifyPropertyChanged(NameOf(ActiveStrategyList))
NotifyPropertyChanged(NameOf(DeactivateStrategyList))
End If
End Sub
#End Region ' AddSelectedStrategyCommand
#Region "RemoveSelectedStrategyCommand"
Public ReadOnly Property RemoveSelectedStrategyCommand As ICommand
Get
If m_RemoveSelectedStrategyCommand Is Nothing Then
m_RemoveSelectedStrategyCommand = New Command(AddressOf RemoveSelectedStrategyToActiveStrategy)
End If
Return m_RemoveSelectedStrategyCommand
End Get
End Property
'''
''' Funzione che rimuove la strategia da ActiveStrategyList e la riaggiunge a StrategyList
'''
Public Sub RemoveSelectedStrategyToActiveStrategy()
' Controllo se SelectedActiveStrategy non è nullo
If Not IsNothing(m_SelectedActiveStrategy) Then
' Aggiungo a ActiveStrategyList strategia selezionata
m_DeactivateStrategyList.Add(m_SelectedActiveStrategy)
' Setto indice per capire che la strategia è stata spostata in StrategyList
m_SelectedActiveStrategy.SetIndexList(-1)
' Rimuovo da StrategyList la strategia precedentemente selezionata
m_ActiveStrategyList.Remove(m_SelectedActiveStrategy)
' metto il SelectedStrategy della lista DeactivateStrategyList a nullo
SetSelectedActiveStrategy(Nothing)
' seleziono l'ultimo elemento inserito
SetSelectedStrategy(m_DeactivateStrategyList.Last())
NotifyPropertyChanged(NameOf(ActiveStrategyList))
NotifyPropertyChanged(NameOf(DeactivateStrategyList))
End If
End Sub
#End Region ' RemoveSelectedStrategyCommand
#Region "OpenFileNameCustomConfigCommand"
Public ReadOnly Property OpenFileNameCustomConfigCommand As ICommand
Get
If m_OpenFileNameCustomConfigCommand Is Nothing Then
m_OpenFileNameCustomConfigCommand = New Command(AddressOf OpenFileNameCustomConfig)
End If
Return m_OpenFileNameCustomConfigCommand
End Get
End Property
'''
''' Funzione che visualizza la textbox
'''
Public Sub OpenFileNameCustomConfig()
Dim SaveAsStrategyWnd As New SaveAsStrategyV With {
.DataContext = New SaveAsStrategyVM,
.Owner = Application.Current.MainWindow
}
SaveAsStrategyWnd.ShowDialog()
End Sub
#End Region ' OpenFileNameCustomConfigCommand
#Region "SaveCommand"
Public ReadOnly Property SaveCommand As ICommand
Get
If m_SaveCommand Is Nothing Then
m_SaveCommand = New Command(AddressOf Save)
End If
Return m_SaveCommand
End Get
End Property
'''
''' Funzione che salva il file json CustomerConfig
'''
Public Sub Save()
' Controllo se il file selezionato esiste
If Not IsNothing(m_sSelectedAISetUp) Then
' Se si creo nuovo file json con il selezionato
CreateCustumerConfigJsonFile(m_sSelectedAISetUp)
' Setto il booleano a false
SetbIsModifyStrategy(False)
Else
' Se no do nome di default CustomerConfig
CreateCustumerConfigJsonFile(CUSTOMERCONFIG_FILE)
End If
End Sub
#End Region ' SaveCommand
#Region "MoveUpSelectedStrategyCommand"
Public ReadOnly Property MoveUpSelectedStrategyCommand As ICommand
Get
If m_MoveUpSelectedStrategyCommand Is Nothing Then
m_MoveUpSelectedStrategyCommand = New Command(AddressOf MoveUpSelectedStrategy)
End If
Return m_MoveUpSelectedStrategyCommand
End Get
End Property
'''
''' Funzione che permette di spostare in alto la strategia selezionata
'''
Public Sub MoveUpSelectedStrategy()
' Controllo se SelectedActiveStrategy non è nullo
If Not IsNothing(m_SelectedActiveStrategy) Then
' Recupero indice elemento selezionato in lista
Dim IndexActiveStrategy As Integer = m_ActiveStrategyList.IndexOf(m_ActiveStrategyList.FirstOrDefault(Function(x) x.sStrategyID = m_SelectedActiveStrategy.sStrategyID))
Dim NewIndexActiveStrategy As Integer = IndexActiveStrategy - 1
' Se l'indice è maggiore di 0
If IndexActiveStrategy > 0 Then
' Riattivo pulsante movedown
If Not m_MoveDownSelectedStrategyEnable Then
SetMoveDownSelectedStrategyVisibility(True)
End If
' Muovo l'elemento selezionato sopra di 1
m_ActiveStrategyList.Move(IndexActiveStrategy, NewIndexActiveStrategy)
' Se l'indice è 0
If NewIndexActiveStrategy = 0 Then
' Disabilito pulsante moveup
SetMoveUpSelectedStrategyVisibility(False)
End If
End If
Else
' Se SelectedActiveStrategy è nullo esco
Return
End If
NotifyPropertyChanged(NameOf(ActiveStrategyList))
End Sub
#End Region ' MoveUpSelectedStrategyCommand
#Region "MoveDownSelectedStrategyCommand"
Public ReadOnly Property MoveDownSelectedStrategyCommand As ICommand
Get
If m_MoveDownSelectedStrategyCommand Is Nothing Then
m_MoveDownSelectedStrategyCommand = New Command(AddressOf MoveDownSelectedStrategy)
End If
Return m_MoveDownSelectedStrategyCommand
End Get
End Property
'''
''' Funzione che permette di spostare in basso la strategia selezionata
'''
Public Sub MoveDownSelectedStrategy()
' Controllo se SelectedActiveStrategy non è nullo
If Not IsNothing(m_SelectedActiveStrategy) Then
' Recupero indice elemento selezionato in lista
Dim IndexActiveStrategy As Integer = m_ActiveStrategyList.IndexOf(m_ActiveStrategyList.FirstOrDefault(Function(x) x.sStrategyID = m_SelectedActiveStrategy.sStrategyID))
Dim NewIndexActiveStrategy As Integer = IndexActiveStrategy + 1
' Se l'indice è maggiore di 0
If IndexActiveStrategy >= 0 Then
' Riattivo pulsante moveup
If Not m_MoveUpSelectedStrategyEnable Then
SetMoveUpSelectedStrategyVisibility(True)
End If
' Muovo l'elemento selezionato sotto di 1
m_ActiveStrategyList.Move(IndexActiveStrategy, NewIndexActiveStrategy)
' Se l'indice è 0
If NewIndexActiveStrategy = m_ActiveStrategyList.Count - 1 Then
' Disabilito pulsante movedown
SetMoveDownSelectedStrategyVisibility(False)
End If
End If
Else
' Se SelectedActiveStrategy è nullo esco
Return
End If
NotifyPropertyChanged(NameOf(ActiveStrategyList))
End Sub
#End Region ' MoveDownSelectedStrategyCommand
#End Region ' Commands
End Class
'----------- Classe che fa riferimento alle Feature -----------
Public Class StrategyFeature
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 Topology)
Public Property TopologyList As ObservableCollection(Of Topology)
Get
Return m_TopologyList
End Get
Set(value As ObservableCollection(Of Topology))
m_TopologyList = value
NotifyPropertyChanged(NameOf(TopologyList))
End Set
End Property
#End Region ' Fields & Propeties
#Region "CONSTRUCTOR"
Sub New(JsonStrategyFeature As JsonStrategyFeature)
If Not IsNothing(JsonStrategyFeature) Then
m_sName = JsonStrategyFeature.sName
m_nPRC = JsonStrategyFeature.nPRC
m_nGRP = JsonStrategyFeature.nGRP
m_TopologyList = New ObservableCollection(Of Topology)((From JsonTopology In JsonStrategyFeature.TopologyList
Select New Topology(JsonTopology)).ToList())
End If
NotifyPropertyChanged(NameOf(TopologyList))
End Sub
#End Region ' Constructor
End Class
'----------- Classe che fa riferimento alle Topologie delle Feature -----------
Public Class Topology
Inherits VMBase
#Region "FIELDS & PROPETIES"
Friend Shared refUpdateSelTreeItem As Action(Of Topology)
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_bIsSelected As Boolean
' Inserito per evitare di scriverlo nella creazione del file json CustomerConfig
Public Property IsSelected As Boolean
Get
Return m_bIsSelected
End Get
Set(value As Boolean)
Map.refStrategyManagerVM.ActiveStrategyList.Clear()
Map.refStrategyManagerVM.DeactivateStrategyList.Clear()
m_bIsSelected = value
refUpdateSelTreeItem(Me)
For Each ItemStrategy As Strategy In Me.StrategyList
If ItemStrategy.bActive Then
Map.refStrategyManagerVM.ActiveStrategyList.Add(ItemStrategy)
Else
Map.refStrategyManagerVM.DeactivateStrategyList.Add(ItemStrategy)
End If
Next
NotifyPropertyChanged(NameOf(IsSelected))
End Set
End Property
' Seleziona l'elemento della lista StrategyList
Public m_SelectedStrategy As Strategy
Public Property SelectedStrategy As Strategy
Get
Return m_SelectedStrategy
End Get
Set(value As Strategy)
m_SelectedStrategy = value
NotifyPropertyChanged(NameOf(SelectedStrategy))
End Set
End Property
Private m_StrategyList As New ObservableCollection(Of Strategy)
Public Property StrategyList As ObservableCollection(Of Strategy)
Get
Return m_StrategyList
End Get
Set(value As ObservableCollection(Of Strategy))
m_StrategyList = value
NotifyPropertyChanged(NameOf(StrategyList))
End Set
End Property
#End Region ' Fields & Propeties
#Region "CONSTRUCTOR"
Sub New(JsonTopology As JsonTopology)
If Not IsNothing(JsonTopology) Then
m_sName = JsonTopology.sName
m_StrategyList = New ObservableCollection(Of Strategy)((From JsonStrategy In JsonTopology.StrategyList
Select New Strategy(Me, JsonStrategy)).ToList())
End If
NotifyPropertyChanged(NameOf(StrategyList))
End Sub
#End Region ' Constructor
End Class
'----------- Classe che fa alle Strategie delle Topologie delle Feature -----------
Public Class Strategy
Inherits VMBase
#Region "FIELDS & PROPETIES"
Private m_ParentTopology As Topology
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
Friend Sub SetIndexList(value As Integer)
m_nIndexInList = value
If nIndexInList > -1 Then
m_bActive = True
Else
m_bActive = False
End If
NotifyPropertyChanged(NameOf(nIndexInList))
NotifyPropertyChanged(NameOf(bActive))
End Sub
Private m_bActive As Boolean
Public ReadOnly Property bActive As Boolean
Get
Return m_bActive
End Get
End Property
Private m_sImageStrategy As String = "C:\EgtData\EgtBEAMWALL\NO_XYJog.png"
Public Property sImageStrategy As String
Get
Return m_sImageStrategy
End Get
Set(value As String)
m_sImageStrategy = value
NotifyPropertyChanged(NameOf(sImageStrategy))
End Set
End Property
Private m_ParameterList As New ObservableCollection(Of GenericParameter)
Public Property ParameterList As ObservableCollection(Of GenericParameter)
Get
Return m_ParameterList
End Get
Set(value As ObservableCollection(Of GenericParameter))
m_ParameterList = value
NotifyPropertyChanged(NameOf(ParameterList))
End Set
End Property
#End Region ' Fields & Propeties
#Region "CONSTRUCTOR"
Sub New(ParentTopology As Topology, JsonStrategy As JsonStrategy)
m_ParentTopology = ParentTopology
If Not IsNothing(JsonStrategy) Then
m_sStrategyID = JsonStrategy.sStrategyID
m_nIndexInList = JsonStrategy.nIndexInList
m_bActive = JsonStrategy.bActive
m_ParameterList = New ObservableCollection(Of GenericParameter)((From JsonParameter In JsonStrategy.ParameterList
Select New GenericParameter(JsonParameter)).ToList())
End If
NotifyPropertyChanged(NameOf(ParameterList))
End Sub
#End Region ' Constructor
#Region "METHODS"
Friend Sub ReadConfiguration(ConfigurationStrategy As JsonStrategy)
m_nIndexInList = ConfigurationStrategy.nIndexInList
NotifyPropertyChanged(NameOf(nIndexInList))
End Sub
#End Region ' Methods
End Class
'----------- Classe che fa riferimento ai parametri delle Strategie -----------
Public Class GenericParameter
Inherits VMBase
#Region "FIELDS & PROPETIES"
Private m_ParentStrategy As Strategy
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
Friend 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 ChoiceParameter)
Public Property Choices As ObservableCollection(Of ChoiceParameter)
Get
Return m_Choices
End Get
Set(value As ObservableCollection(Of ChoiceParameter))
m_Choices = value
NotifyPropertyChanged(NameOf(Choices))
End Set
End Property
' Seleziona elemento nella combobox Choices
Public m_SelectedChoice As ChoiceParameter
Public Property SelectedChoice As ChoiceParameter
Get
Return m_SelectedChoice
End Get
Set(value As ChoiceParameter)
m_SelectedChoice = value
If Not IsNothing(m_SelectedChoice) Then
m_sValue = m_SelectedChoice.sValue
End If
NotifyPropertyChanged(NameOf(SelectedChoice))
NotifyPropertyChanged(NameOf(sValue))
End Set
End Property
Friend m_SelTypeValue As Integer = 0
Public Property SelTypeValue As Integer
Get
Return m_SelTypeValue
End Get
Set(value As Integer)
m_SelTypeValue = value
NotifyPropertyChanged(NameOf(SelTypeValue))
End Set
End Property
#End Region ' Fields & Propeties
#Region "CONSTRUCTOR"
Sub New(JsonGenericParameter As JsonGenericParameter)
If Not IsNothing(JsonGenericParameter) Then
m_sName = JsonGenericParameter.sName
m_sNameNge = JsonGenericParameter.sNameNge
m_sValue = JsonGenericParameter.sValue
m_sDescriptionShort = JsonGenericParameter.sDescriptionShort
m_sDescriptionLong = JsonGenericParameter.sDescriptionLong
m_sType = JsonGenericParameter.sType
m_sMessageId = JsonGenericParameter.sMessageId
m_sMinUserLevel = JsonGenericParameter.sMinUserLevel
m_Choices = New ObservableCollection(Of ChoiceParameter)((From JsonChoice In JsonGenericParameter.Choices
Select New ChoiceParameter(JsonChoice)).ToList())
End If
NotifyPropertyChanged(NameOf(Choices))
End Sub
#End Region ' Constructor
End Class
'Public Class ComboBoxParam
' Inherits GenericParameter
'#Region "FIELDS & PROPERTIES"
' Private m_Choices As New ObservableCollection(Of ChoiceParameter)
' Public Property Choices As ObservableCollection(Of ChoiceParameter)
' Get
' Return m_Choices
' End Get
' Set(value As ObservableCollection(Of ChoiceParameter))
' m_Choices = value
' NotifyPropertyChanged(NameOf(Choices))
' End Set
' End Property
' ' Seleziona elemento nella combobox Choices
' Public m_SelectedChoice As ChoiceParameter
' Public Property SelectedChoice As ChoiceParameter
' Get
' Return m_SelectedChoice
' End Get
' Set(value As ChoiceParameter)
' m_SelectedChoice = value
' If Not IsNothing(m_SelectedChoice) Then
' m_sValue = m_SelectedChoice.sValue
' End If
' NotifyPropertyChanged(NameOf(SelectedChoice))
' NotifyPropertyChanged(NameOf(sValue))
' End Set
' End Property
'#End Region ' Fiels & Properties
'#Region "CONSTRUCTOR"
' Public Sub New(JsonGenericParameter As JsonGenericParameter)
' MyBase.New(JsonGenericParameter)
' m_Choices = New ObservableCollection(Of ChoiceParameter)((From JsonChoice In JsonGenericParameter.Choices
' Select New ChoiceParameter(JsonChoice)).ToList())
' NotifyPropertyChanged(NameOf(Choices))
' End Sub
'#End Region ' Constructor
'End Class
'-------------------------------------------------------------------------
'----------- Classe che fa riferimento ai parametri delle Scelte -----------
Public Class ChoiceParameter
Inherits VMBase
#Region "FIELD & PROPERTIES"
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 Region ' Fields & Properties
#Region "CONSTRUCTOR"
Sub New(JsonChoiceParameter As JsonChoiceParameter)
If Not IsNothing(JsonChoiceParameter) Then
m_sValue = JsonChoiceParameter.sValue
m_sDescriptionShort = JsonChoiceParameter.sDescriptionShort
m_sDescriptionLong = JsonChoiceParameter.sDescriptionLong
m_sMessageId = JsonChoiceParameter.sMessageId
End If
End Sub
#End Region ' Constructor
End Class
'----------- 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
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
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_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 JsonGenericParameter)
Public Property ParameterList As ObservableCollection(Of JsonGenericParameter)
Get
Return m_ParameterList
End Get
Set(value As ObservableCollection(Of JsonGenericParameter))
m_ParameterList = value
NotifyPropertyChanged(NameOf(ParameterList))
End Set
End Property
#End Region ' Fields & Propeties
End Class
'----------- Classe che fa riferimento ai parametri delle Strategie nel file Json -----------
Public Class JsonGenericParameter
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 JsonChoiceParameter)
Public Property Choices As ObservableCollection(Of JsonChoiceParameter)
Get
Return m_Choices
End Get
Set(value As ObservableCollection(Of JsonChoiceParameter))
m_Choices = value
NotifyPropertyChanged(NameOf(Choices))
End Set
End Property
#End Region ' Fields & Propeties
End Class
'----------- Classe che fa riferimento ai parametri delle Scelte nel file Json -----------
Public Class JsonChoiceParameter
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