9c9b00d661
-aggiunto salvataggio, salvataggio con nome
1593 lines
52 KiB
VB.net
1593 lines
52 KiB
VB.net
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
|
|
''' <summary>
|
|
''' Funzione che aggiorna la selezione dell'elemento dell'albero
|
|
''' </summary>
|
|
''' <param name="Item">Elemento dell'albero</param>
|
|
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"
|
|
|
|
''' <summary>
|
|
''' Funzione che legge il file json AVAILABLESTRATEGYLIST
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che legge il file json delle strategie
|
|
''' </summary>
|
|
''' <param name="SelectedStrategyItem">Item delle singole feature</param>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che legge il file json delle strategie
|
|
''' </summary>
|
|
''' <param name="SelectedStrategyItem"></param>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione per creare file json
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione per convertire da AvailableStrategy a JsonAvailableStrategy
|
|
''' </summary>
|
|
''' <param name="availableStrategy"></param>
|
|
''' <returns></returns>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione per convertire da Topology a JsonTopology
|
|
''' </summary>
|
|
''' <param name="topology"></param>
|
|
''' <returns></returns>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione per convertire da StrategyConfiguration a JsonStrategyConfiguration
|
|
''' </summary>
|
|
''' <param name="strategyConfiguration"></param>
|
|
''' <returns></returns>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione per convertire da GenericParameter a JsonGenericParameter
|
|
''' </summary>
|
|
''' <param name="genericParameter"></param>
|
|
''' <returns></returns>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione per convertire da ChoicesParameter a JsonChoicesParameter
|
|
''' </summary>
|
|
''' <param name="choiceParameter"></param>
|
|
''' <returns></returns>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che permette di scegliere se il tipo è una checkbox, testo o combobox
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che restituisce la lista dei file contenuti nella cartella AISetup
|
|
''' </summary>
|
|
''' <param name="AISetupPath">Percorso AISetup</param>
|
|
''' <returns></returns>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che permette di aggiungere la strategia da StrategyList a ActiveStrategyList
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che rimuove la strategia da ActiveStrategyList e la riaggiunge a StrategyList
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che visualizza la textbox
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che salva il file json CustomerConfig
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che permette di spostare in alto la strategia selezionata
|
|
''' </summary>
|
|
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
|
|
|
|
''' <summary>
|
|
''' Funzione che permette di spostare in basso la strategia selezionata
|
|
''' </summary>
|
|
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
|
|
<JsonIgnore> ' 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 |