Files
Renzo Lanza 592b801507 LicenseManager 2.3c1:
- aggiunta DataGrid licenze Essetre in scadenza nell'arco di 5 giorni al MainMenu (nascosta se nessuna è in scadenza) e bottone per aggiornarle 
- corretto filtro ricerca Licenze per essere eseguito premendo Invio
2021-03-09 16:23:14 +00:00

317 lines
11 KiB
VB.net

Imports EgtWPFLib5
Imports LicenseManager
Public Class MainWindowVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Friend Enum ProjectModeOpt As Integer
MAINMENU = 0
NEWCLIENT = 1
NEWKEY = 2
NEWLICENCE = 3
NEWPRODUCT = 4
NEWVERSION = 5
NEWRESELLER = 6
SEARCHCLIENT = 7
SEARCHKEY = 8
SEARCHLICENCE = 9
SEARCHPRODUCT = 10
SEARCHVERSION = 11
SEARCHRESELLER = 12
UPDATECLIENT = 13
UPDATEKEY = 14
UPDATELICENCE = 15
UPDATEPRODUCT = 16
UPDATEVERSION = 17
UPDATERESELLER = 18
End Enum
Public Shared Narrowing Operator CType(v As Window) As MainWindowVM
Throw New NotImplementedException()
End Operator
Private m_MainWindowM As MainWindowM
Friend ReadOnly Property MainWindowM As MainWindowM
Get
Return m_MainWindowM
End Get
End Property
' Variabile che indica che il programma è stato avviato correttamente (sia la mappa che l'ambiente Egt)
Private m_bInitStatus As Boolean
Friend ReadOnly Property InitStatus As Boolean
Get
Return m_bInitStatus
End Get
End Property
' Titolo
Private m_Title As String
Public Property Title As String
Get
Return m_Title
End Get
Set(value As String)
m_Title = value
NotifyPropertyChanged("Title")
End Set
End Property
Private m_SelProjectMode As ProjectModeOpt
Friend Property SelProjectMode As ProjectModeOpt
Get
Return m_SelProjectMode
End Get
Set(value As ProjectModeOpt)
' Esco dallo stato corrente
Select Case m_SelProjectMode
Case ProjectModeOpt.MAINMENU
Case ProjectModeOpt.NEWCLIENT
Case ProjectModeOpt.NEWKEY
Case ProjectModeOpt.NEWLICENCE
Case ProjectModeOpt.NEWPRODUCT
Case ProjectModeOpt.NEWVERSION
Case ProjectModeOpt.NEWRESELLER
Case ProjectModeOpt.SEARCHCLIENT
Case ProjectModeOpt.SEARCHKEY
Case ProjectModeOpt.SEARCHLICENCE
Case ProjectModeOpt.SEARCHPRODUCT
Case ProjectModeOpt.SEARCHVERSION
Case ProjectModeOpt.SEARCHRESELLER
Case ProjectModeOpt.UPDATECLIENT
Case ProjectModeOpt.UPDATEKEY
Case ProjectModeOpt.UPDATELICENCE
Case ProjectModeOpt.UPDATEPRODUCT
Case ProjectModeOpt.UPDATEVERSION
Case ProjectModeOpt.UPDATERESELLER
End Select
' Entro nel nuovo stato
m_SelProjectMode = value
Select Case m_SelProjectMode
Case ProjectModeOpt.MAINMENU
Map.refMainMenuVM.InitMainMenuPage()
Case ProjectModeOpt.NEWCLIENT
Try
Map.refNewClientPageVM.InitNewClientPage()
Catch ex As Exception
MsgBox("Eccezione generata" & vbCrLf & ex.Message)
End Try
Case ProjectModeOpt.NEWKEY
Map.refNewKeyPageVM.InitNewKeyPage()
Case ProjectModeOpt.NEWLICENCE
Map.refNewLicencePageVM.InitNewLicencePage()
Case ProjectModeOpt.NEWPRODUCT
Map.refNewProductPageVM.InitNewProductPage()
Case ProjectModeOpt.NEWVERSION
Map.refNewVersionPageVM.InitVersionPage()
Case ProjectModeOpt.NEWRESELLER
Map.refNewResellerPageVM.InitNewResellerPage()
Case ProjectModeOpt.SEARCHCLIENT
Map.refSearchClientPageVM.InitSearchClientPage()
Case ProjectModeOpt.SEARCHKEY
Map.refSearchKeyPageVM.InitSearchKeyPage()
Case ProjectModeOpt.SEARCHLICENCE
Map.refSearchLicencePageVM.InitSearchLicencePage()
Case ProjectModeOpt.SEARCHPRODUCT
Map.refSearchProductPageVM.InitSearchProductPage()
Case ProjectModeOpt.SEARCHVERSION
Map.refSearchVersionPageVM.InitSearchVersionPage()
Case ProjectModeOpt.SEARCHRESELLER
Map.refSearchResellerPageVM.InitSearchResellerPage()
Case ProjectModeOpt.UPDATECLIENT
Map.refUpdateClientPageVM.InitUpdateClientPage()
Case ProjectModeOpt.UPDATEKEY
Map.refUpdateKeyPageVM.InitUpdateKeyPage()
Case ProjectModeOpt.UPDATELICENCE
Map.refUpdateLicencePageVM.InitUpdateLicencePage()
Case ProjectModeOpt.UPDATEPRODUCT
Map.refUpdateProductPageVM.InitUpdateProductPage()
Case ProjectModeOpt.UPDATEVERSION
Map.refUpdateVersionPageVM.InitUpdateVersionPage()
Case ProjectModeOpt.UPDATERESELLER
Map.refUpdateResellerPageVM.InitUpdateResellerPage()
End Select
NotifyPropertyChanged("ProjectContent")
End Set
End Property
Private m_MainMenuV As MainMenuV
Private m_NewClientPageV As NewClientPageV
Private m_NewKeyPageV As NewKeyPageV
Private m_NewLicencePageV As NewLicencePageV
Private m_NewProductPageV As NewProductPageV
Private m_NewVersionPageV As NewVersionPageV
Private m_NewResellerPageV As NewResellerPageV
Private m_SearchClientPageV As SearchClientPageV
Private m_SearchKeyPageV As SearchKeyPageV
Private m_SearchLicencePageV As SearchLicencePageV
Private m_SearchProductPageV As SearchProductPageV
Private m_SearchVersionPageV As SearchVersionPageV
Private m_SearchResellerPageV As SearchResellerPageV
Private m_UpdateClientPageV As UpdateClientPageV
Private m_UpdateKeyPageV As UpdateKeyPageV
Private m_UpdateLicencePageV As UpdateLicencePageV
Private m_UpdateProductPageV As UpdateProductPageV
Private m_UpdateVersionPageV As UpdateVersionPageV
Private m_UpdateResellerPageV As UpdateResellerPageV
Public ReadOnly Property ProjectContent As FrameworkElement
Get
Select Case m_SelProjectMode
Case ProjectModeOpt.MAINMENU
Return m_MainMenuV
Case ProjectModeOpt.NEWCLIENT
Return m_NewClientPageV
Case ProjectModeOpt.NEWKEY
Return m_NewKeyPageV
Case ProjectModeOpt.NEWLICENCE
Return m_NewLicencePageV
Case ProjectModeOpt.NEWPRODUCT
Return m_NewProductPageV
Case ProjectModeOpt.NEWVERSION
Return m_NewVersionPageV
Case ProjectModeOpt.NEWRESELLER
Return m_NewResellerPageV
Case ProjectModeOpt.SEARCHCLIENT
Return m_SearchClientPageV
Case ProjectModeOpt.SEARCHKEY
Return m_SearchKeyPageV
Case ProjectModeOpt.SEARCHLICENCE
Return m_SearchLicencePageV
Case ProjectModeOpt.SEARCHPRODUCT
Return m_SearchProductPageV
Case ProjectModeOpt.SEARCHVERSION
Return m_SearchVersionPageV
Case ProjectModeOpt.SEARCHRESELLER
Return m_SearchResellerPageV
Case ProjectModeOpt.UPDATECLIENT
Return m_UpdateClientPageV
Case ProjectModeOpt.UPDATEKEY
Return m_UpdateKeyPageV
Case ProjectModeOpt.UPDATELICENCE
Return m_UpdateLicencePageV
Case ProjectModeOpt.UPDATEPRODUCT
Return m_UpdateProductPageV
Case ProjectModeOpt.UPDATEVERSION
Return m_UpdateVersionPageV
Case ProjectModeOpt.UPDATERESELLER
Return m_UpdateResellerPageV
Case Else
Return m_MainMenuV
End Select
End Get
End Property
' definizione comandi
Private m_cmdAboutBox As ICommand
#End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTOR"
Sub New()
' Avvio l'inizializzazione della mappa passandogli il riferimento al MainWindowVM
Map.BeginInit(Me)
' Costruisco model della MainWindow
m_MainWindowM = New MainWindowM
' Creo tutti gli oggetti
m_MainMenuV = New MainMenuV
m_NewClientPageV = New NewClientPageV
m_NewKeyPageV = New NewKeyPageV
m_NewLicencePageV = New NewLicencePageV
m_NewProductPageV = New NewProductPageV
m_NewVersionPageV = New NewVersionPageV
m_NewResellerPageV = New NewResellerPageV
m_SearchClientPageV = New SearchClientPageV
m_SearchKeyPageV = New SearchKeyPageV
m_SearchLicencePageV = New SearchLicencePageV
m_SearchProductPageV = New SearchProductPageV
m_SearchVersionPageV = New SearchVersionPageV
m_SearchResellerPageV = New SearchResellerPageV
m_UpdateClientPageV = New UpdateClientPageV
m_UpdateKeyPageV = New UpdateKeyPageV
m_UpdateLicencePageV = New UpdateLicencePageV
m_UpdateProductPageV = New UpdateProductPageV
m_UpdateVersionPageV = New UpdateVersionPageV
m_UpdateResellerPageV = New UpdateResellerPageV
' Setto il titolo dell'applicazione
SetTitle(My.Application.Info.Title.ToString() & " ver. " &
My.Application.Info.Version.Major.ToString() &
"." & My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
My.Application.Info.Version.Revision.ToString())
' Imposto pagina MainMenu all'avvio
SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
End Sub
#End Region ' CONSTRUCTOR
#Region "METHODS"
Friend Sub SetTitle(sTitle As String)
m_Title = sTitle
NotifyPropertyChanged("Title")
End Sub
Friend Sub ContentRendered()
' Verifico che l'inizializzazione di tutte le parti del programma sia andata a buon fine
If Map.EndInit() Then
m_bInitStatus = True
' altrimenti chiudo il programma
Else
m_bInitStatus = False
End If
'ManageDb.CreateTable()
End Sub
#End Region ' METHODS
#Region "COMMANDS"
#Region "AboutBoxCommand"
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property AboutBoxCommand() As ICommand
Get
If m_cmdAboutBox Is Nothing Then
m_cmdAboutBox = New Command(AddressOf AboutBox)
End If
Return m_cmdAboutBox
End Get
End Property
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Public Sub AboutBox(ByVal param As Object)
Dim AboutBoxWindow As New AboutBoxV
AboutBoxWindow.Owner = Application.Current.MainWindow
AboutBoxWindow.ShowDialog()
End Sub
#End Region ' AboutBoxCommand
#End Region ' COMMANDS
End Class