08237de2d8
- 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
282 lines
10 KiB
VB.net
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 |