Files
LicenceManager/NewKeyPage/NewKeyPageVM.vb
T
Renzo Lanza 08237de2d8 LicenceManager 2.1c6:
- In UpdateLicencePage viene mostrato il nome del Prodotto della Licenza che si sta aggiornando 
- Ogni pulsante "Close" fa ritornare alla pagina precedente (Correzione simile per i vari pulsanti Update e New, mentre Delete rimane nella stessa pagina)
- Correzione pulsanti del Main Menu (non hanno più la scritta "Cerca...")
- I DataGrid non tagliano più l'ultima riga visibile ma si aggiustano in base al numero intero di righe visibili (implementato per tutte le pagine Search tranne che per Product per via di errori che non riesco a risolvere
2019-03-25 08:58:31 +00:00

282 lines
10 KiB
VB.net

Imports EgtWPFLib5
Public Class NewKeyPageVM
Inherits KeyPageVM
#Region "FIELDS & PROPERTIES"
Private Shadows m_Number As Integer
Public Overloads Property Number As String
Get
Return m_Number.ToString()
End Get
Set(value As String)
If Not String.IsNullOrWhiteSpace(value) AndAlso Not Integer.TryParse(value, m_Number) Then m_Number = 0
' Costruisco GeneratedLockID string
Dim sCompleteNumber As String = m_Number.ToString("D6")
Dim sCompleteChar As String = sCompleteNumber
sCompleteChar = sCompleteChar.Replace("0"c, "o"c)
sCompleteChar = sCompleteChar.Replace("1"c, "a"c)
sCompleteChar = sCompleteChar.Replace("2"c, "b"c)
sCompleteChar = sCompleteChar.Replace("3"c, "c"c)
sCompleteChar = sCompleteChar.Replace("4"c, "d"c)
sCompleteChar = sCompleteChar.Replace("5"c, "e"c)
sCompleteChar = sCompleteChar.Replace("6"c, "f"c)
sCompleteChar = sCompleteChar.Replace("7"c, "g"c)
sCompleteChar = sCompleteChar.Replace("8"c, "h"c)
sCompleteChar = sCompleteChar.Replace("9"c, "i"c)
Dim CompleteChar() As Char = sCompleteChar.ToCharArray()
For I = 0 To sCompleteChar.Count - 1
If I Mod 2 = 1 Then
CompleteChar(I) = Char.ToUpper(CompleteChar(I))
Else
CompleteChar(I) = Char.ToLower(CompleteChar(I))
End If
Next
m_GeneratedLockID = "EGTECH-" & sCompleteNumber & "-" & CompleteChar
NotifyPropertyChanged("GeneratedLockID")
End Set
End Property
Private m_GeneratedLockID As String
Public Overloads Property GeneratedLockID As String
Get
Return m_GeneratedLockID
End Get
Set(value As String)
m_GeneratedLockID = value
NotifyPropertyChanged("GeneratedLockID")
End Set
End Property
Private m_LockID As String
Public Shadows Property LockID As String
Get
Return m_LockID
End Get
Set(value As String)
' Se chiave software
If (GetSelIsDongle() = 0) And Not String.IsNullOrWhiteSpace(value) Then
' Verifico se valore inserito già esistente
Dim Query As String = "SELECT COUNT(" & DB_LOCKID & ") AS " & DB_MAXNUMBER & " FROM " & DB_KEY & " WHERE " & DB_LOCKID & " = '" & value & "'"
Dim MaxLockID As Integer = ExecuteNumberQuery(Query)
If ExecuteNumberQuery(Query) = 0 Then
m_LockID = value
' Recupero ultimo Number di chiave software usato
Query = "SELECT MAX(" & DB_NUMBER & ") AS " & DB_MAXNUMBER & " FROM " & DB_KEY & " WHERE " & DB_ISDONGLE & " = 0"
m_Number = ExecuteNumberQuery(Query)
' Setto number
m_Number += 1
m_GeneratedNumber = m_Number
NotifyPropertyChanged("GeneratedNumber")
Else
MessageBox.Show("Il LockID inserito esiste già!!")
m_LockID = value
'm_LockID = ""
'MyBase.NotifyPropertyChanged("LockID")
End If
End If
NotifyPropertyChanged("LockID")
End Set
End Property
Private m_GeneratedNumber As Integer
Public Overloads Property GeneratedNumber As Integer
Get
Return m_GeneratedNumber
End Get
Set(value As Integer)
m_GeneratedNumber = value
NotifyPropertyChanged("GeneratedNumber")
End Set
End Property
' Definizione comandi
Private m_cmdAddKey As Command
Private m_cmdCancel As Command
#Region "Messages"
Public ReadOnly Property NewKeyMsg As String
Get
Return "New key"
End Get
End Property
Public ReadOnly Property AddMsg As String
Get
Return "Add"
End Get
End Property
Public ReadOnly Property CancelMsg As String
Get
Return "Close"
End Get
End Property
#End Region ' Messages
#End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTOR"
Sub New()
' Imposto riferimento nella mappa
Map.SetRefNewKeyPageVM(Me)
End Sub
#End Region ' CONSTRUCTOR
#Region "METHODS"
Friend Sub InitNewKeyPage()
' Svuoto campi
Number = Nothing
NotifyPropertyChanged("Number")
m_LockID = String.Empty
NotifyPropertyChanged("LockID")
' Mostro la GeneratedLockID
GeneratedLockID_Visibility = Visibility.Visible
' Carico valore di default IsDongle
IsDongleList.Remove("---ANY---")
SelIsDongle = String.Empty
' Carico lista Client
Dim Query As String = "SELECT * FROM " & DB_CLIENT
SetClientList(ManageDb.ExecuteClientQuery(Query))
NotifyPropertyChanged("ClientList")
' Carico valore di default State (InDeposito)
StateList.Remove("---ANY---")
SelState = String.Empty
KeyDate = Date.Now
NotifyPropertyChanged("KeyDate")
End Sub
#End Region ' METHODS
#Region "COMMANDS"
#Region "AddKey"
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property AddKey_Command As ICommand
Get
If m_cmdAddKey Is Nothing Then
m_cmdAddKey = New Command(AddressOf AddKey)
End If
Return m_cmdAddKey
End Get
End Property
Public Sub AddKey(ByVal param As Object)
Dim Query As String = String.Empty
' Se chiave hardware
If (GetSelIsDongle() = 1) Then
' Costruisco lockId
Dim sCompleteNumber As String = m_Number.ToString("D6")
Dim sCompleteChar As String = sCompleteNumber
sCompleteChar = sCompleteChar.Replace("0"c, "o"c)
sCompleteChar = sCompleteChar.Replace("1"c, "a"c)
sCompleteChar = sCompleteChar.Replace("2"c, "b"c)
sCompleteChar = sCompleteChar.Replace("3"c, "c"c)
sCompleteChar = sCompleteChar.Replace("4"c, "d"c)
sCompleteChar = sCompleteChar.Replace("5"c, "e"c)
sCompleteChar = sCompleteChar.Replace("6"c, "f"c)
sCompleteChar = sCompleteChar.Replace("7"c, "g"c)
sCompleteChar = sCompleteChar.Replace("8"c, "h"c)
sCompleteChar = sCompleteChar.Replace("9"c, "i"c)
Dim CompleteChar() As Char = sCompleteChar.ToCharArray()
For I = 0 To sCompleteChar.Count - 1
If I Mod 2 = 1 Then
CompleteChar(I) = Char.ToUpper(CompleteChar(I))
Else
CompleteChar(I) = Char.ToLower(CompleteChar(I))
End If
Next
m_LockID = "EGTECH-" & sCompleteNumber & "-" & CompleteChar
' Se chiave software
Else
'' Recupero ultimo Number di chiave software usato
'Query = "SELECT MAX(" & DB_NUMBER & ") AS " & DB_MAXNUMBER & " FROM " & DB_KEY & " WHERE " & DB_ISDONGLE & " = 0"
'm_Number = ExecuteNumberQuery(Query)
'' Setto number
'm_Number += 1
m_Number = m_GeneratedNumber
End If
If (Not IsNothing(m_Number)) Then
' Verifico se Number già esistente
Dim numQuery As String = "SELECT COUNT(" & DB_NUMBER & ") AS " & DB_MAXNUMBER & " FROM " & DB_KEY & " WHERE " & DB_NUMBER & " = '" & m_Number & "'"
Dim MaxLockID As Integer = ExecuteNumberQuery(numQuery)
If ExecuteNumberQuery(numQuery) = 0 Then
'Verifico che valore LockID sia valido
If Not String.IsNullOrWhiteSpace(m_LockID) Then
' Aggiungo un rivenditore al Db
Dim dongleValue As Integer = 0
If (GetSelIsDongle() = 0) Then dongleValue = 0
If (GetSelIsDongle() = 1) Then dongleValue = 1
If (Not IsNothing(SelClient)) Then
Query = "INSERT INTO " & DB_KEY & " (" & DB_NUMBER & ", " & DB_CLIENTID & ", " & DB_ISDONGLE & ", " & DB_LOCKID & ", " & DB_STATE & ", " & DB_DATE & ")" &
" VALUES ('" & Number & "', " &
" '" & SelClient.ClientID & "', " &
" '" & dongleValue & "', " &
" '" & m_LockID & "', " &
" '" & SelState.ToString() & "', " &
" '" & Format(KeyDate, "yyyy-MM-dd") & "')"
Else
Query = "INSERT INTO " & DB_KEY & " (" & DB_NUMBER & ", " & DB_ISDONGLE & ", " & DB_LOCKID & ", " & DB_STATE & ", " & DB_DATE & ")" &
" VALUES ('" & Number & "', " &
" '" & dongleValue & "', " &
" '" & m_LockID & "', " &
" '" & SelState.ToString() & "', " &
" '" & Format(KeyDate, "yyyy-MM-dd") & "')"
End If
ManageDb.ExecuteQuery(Query)
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.SEARCHKEY
Else
MessageBox.Show("Completare i campi necessari")
End If
Else
MessageBox.Show("Il Numero di chiave esiste già!")
End If
End If
'' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
'Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
End Sub
#End Region ' AddKey
#Region "Cancel"
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property Cancel_Command As ICommand
Get
If m_cmdCancel Is Nothing Then
m_cmdCancel = New Command(AddressOf Cancel)
End If
Return m_cmdCancel
End Get
End Property
Public Sub Cancel(ByVal param As Object)
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.SEARCHKEY
End Sub
#End Region ' Cancel
#End Region ' COMMANDS
End Class