315 lines
11 KiB
VB.net
315 lines
11 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
|
|
|
|
Private m_Note As String
|
|
Public Overloads Property Note As String
|
|
Get
|
|
Return m_Note
|
|
End Get
|
|
Set(value As String)
|
|
m_Note = value
|
|
NotifyPropertyChanged("Note")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_Seriale As String
|
|
Public Overloads Property Seriale As String
|
|
Get
|
|
Return m_Seriale
|
|
End Get
|
|
Set(value As String)
|
|
m_Seriale = value
|
|
NotifyPropertyChanged("Seriale")
|
|
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")
|
|
|
|
m_Note = String.Empty
|
|
NotifyPropertyChanged("Note")
|
|
|
|
m_Seriale = String.Empty
|
|
NotifyPropertyChanged("Seriale")
|
|
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
|
|
m_LockID = m_GeneratedLockID
|
|
' 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 & ", " & DB_NOTE & ", " & DB_SERIALE & ")" &
|
|
" VALUES ('" & Number & "', " &
|
|
" '" & SelClient.ClientID & "', " &
|
|
" '" & dongleValue & "', " &
|
|
" '" & m_LockID & "', " &
|
|
" '" & SelState.ToString() & "', " &
|
|
" '" & Format(KeyDate, "yyyy-MM-dd") & "', " &
|
|
" '" & m_Note.Replace("\", "\\").Replace("'", "\'").Replace("""", "\""").Replace("%", "\%") & "', " &
|
|
" '" & m_Seriale & "')"
|
|
Else
|
|
Query = "INSERT INTO " & DB_KEY & " (" & DB_NUMBER & ", " & DB_ISDONGLE & ", " & DB_LOCKID & ", " & DB_STATE & ", " & DB_DATE & ", " & DB_NOTE & ", " & DB_SERIALE & ")" &
|
|
" VALUES ('" & Number & "', " &
|
|
" '" & dongleValue & "', " &
|
|
" '" & m_LockID & "', " &
|
|
" '" & SelState.ToString() & "', " &
|
|
" '" & Format(KeyDate, "yyyy-MM-dd") & "', " &
|
|
" '" & m_Note.Replace("\", "\\").Replace("'", "\'").Replace("""", "\""").Replace("%", "\%") & "', " &
|
|
" '" & m_Seriale & "')"
|
|
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 |