4e40b7e61c
- Aggiunto KeyID in KeyTable nel DB - ClientID può essere NULL in KeyTable nel DB - NewKeyPage: impostato Generated Number/LockID in base a IsDongle - Aggiunto Stato Key 'InDepositoEgt' - Sistemate comboBox e textBox delle KeyPages e di UpdateLicencePage - Avviso Number già esistente nella creazione Key
274 lines
8.4 KiB
VB.net
274 lines
8.4 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports EgtWPFLib5
|
|
Imports MySql.Data.MySqlClient
|
|
|
|
Public Class SearchKeyPageVM
|
|
Inherits KeyPageVM
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_SelSearchResult As SearchKey
|
|
Public Property SelSearchResult As SearchKey
|
|
Get
|
|
Return m_SelSearchResult
|
|
End Get
|
|
Set(value As SearchKey)
|
|
m_SelSearchResult = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_Number As Integer
|
|
Public Property Number As String
|
|
Get
|
|
Return If(m_Number <> 0, m_Number.ToString(), "")
|
|
End Get
|
|
Set(value As String)
|
|
If Not String.IsNullOrWhiteSpace(value) Then
|
|
If Not Integer.TryParse(value, m_Number) Then
|
|
m_Number = Nothing
|
|
End If
|
|
Else
|
|
m_Number = Nothing
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SearchResult As ObservableCollection(Of SearchKey)
|
|
Public ReadOnly Property SearchResult As ObservableCollection(Of SearchKey)
|
|
Get
|
|
Return m_SearchResult
|
|
End Get
|
|
End Property
|
|
|
|
Private m_StateList As New List(Of String)({"Consegnata", "InDeposito", "InDepositoEgt", "Guasta", "---ANY---"}) ' Key.KeyState)({Key.KeyState.Consegnata, Key.KeyState.InDeposito, Key.KeyState.Guasta, Key.KeyState.ANY})
|
|
Public ReadOnly Property StateList As List(Of String) ' Key.KeyState)
|
|
Get
|
|
Return m_StateList
|
|
End Get
|
|
End Property
|
|
Friend Sub SetStateList(value As List(Of String)) ' Key.KeyState))
|
|
m_StateList = value
|
|
End Sub
|
|
|
|
Private m_SelState As Key.KeyState
|
|
Public Property SelState As String
|
|
Get
|
|
Return m_SelState.ToString()
|
|
End Get
|
|
Set(value As String) ' Key.KeyState)
|
|
'm_SelState = value
|
|
If (value.Equals(" ")) Then m_SelState = Nothing
|
|
If (value.Equals("Consegnata")) Then m_SelState = Key.KeyState.Consegnata
|
|
If (value.Equals("InDeposito")) Then m_SelState = Key.KeyState.InDeposito
|
|
If (value.Equals("InDepositoEgt")) Then m_SelState = Key.KeyState.InDepositoEgt
|
|
If (value.Equals("Guasta")) Then m_SelState = Key.KeyState.Guasta
|
|
If (value.Equals("---ANY---")) Then m_SelState = Key.KeyState.ANY
|
|
NotifyPropertyChanged("SelState")
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione comandi
|
|
Private m_cmdSearch As Command
|
|
Private m_cmdCancel As Command
|
|
Private m_cmdUpdate As Command
|
|
|
|
#Region "Messages"
|
|
|
|
Public ReadOnly Property SearchKeyMsg As String
|
|
Get
|
|
Return "Search key"
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SearchMsg As String
|
|
Get
|
|
Return "Search"
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CancelMsg As String
|
|
Get
|
|
Return "Cancel"
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property UpdateMsg As String
|
|
Get
|
|
Return "Update"
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
#End Region ' FIELDS & PROPERTIES
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
MyBase.New()
|
|
' Imposto riferimento nella mappa
|
|
Map.SetRefSearchKeyPageVM(Me)
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub InitSearchKeyPage()
|
|
MyBase.InitKeyPage()
|
|
' Svuoto campi
|
|
m_Number = 0
|
|
NotifyPropertyChanged("Number")
|
|
|
|
' Nascondo la GeneratedLockID
|
|
GeneratedLockID_Visibility = Visibility.Collapsed
|
|
|
|
m_SearchResult = New ObservableCollection(Of SearchKey)()
|
|
NotifyPropertyChanged("SearchResult")
|
|
m_SelState = Key.KeyState.ANY
|
|
NotifyPropertyChanged("SelState")
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Search"
|
|
|
|
' Returns a command that manage the MainWindow_Unloaded command
|
|
Public ReadOnly Property SearchKey_Command As ICommand
|
|
Get
|
|
If m_cmdSearch Is Nothing Then
|
|
m_cmdSearch = New Command(AddressOf Search)
|
|
End If
|
|
Return m_cmdSearch
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Search(ByVal param As Object)
|
|
' Cerco nella tabella Key
|
|
Dim Query As String = "SELECT * FROM " & DB_KEY & " LEFT JOIN " & DB_CLIENT & " ON " & DB_KEY & "." & DB_CLIENTID & " = " & DB_CLIENT & "." & DB_CLIENTID & " "
|
|
Dim bFirstWhere As Boolean = True
|
|
If Not String.IsNullOrWhiteSpace(Number) OrElse
|
|
Not IsNothing(SelClient) OrElse
|
|
Not IsNothing(SelIsDongle) OrElse
|
|
Not IsNothing(SelState) OrElse
|
|
Not String.IsNullOrWhiteSpace(LockID) Then
|
|
Query &= "WHERE "
|
|
If Not IsNothing(SelIsDongle) And (SelIsDongle = "Hardware" Or SelIsDongle = "Software") Then ' If Not IsNothing(SelIsDongle) Then
|
|
EvalWhere(bFirstWhere, Query)
|
|
Query &= DB_ISDONGLE & " = "
|
|
If (GetSelIsDongle() = 1) Then Query &= 1 & " " Else Query &= 0 & " "
|
|
End If
|
|
If m_Number <> 0 Then
|
|
EvalWhere(bFirstWhere, Query)
|
|
Query &= DB_NUMBER & " LIKE '%" & Number & "%' "
|
|
End If
|
|
If Not String.IsNullOrWhiteSpace(LockID) Then
|
|
EvalWhere(bFirstWhere, Query)
|
|
Query &= DB_LOCKID & " LIKE '%" & LockID & "%' "
|
|
End If
|
|
If Not IsNothing(SelClient) Then
|
|
If Not SelClient.Name.Equals("---ANY---") Then
|
|
EvalWhere(bFirstWhere, Query)
|
|
Query &= DB_NAME & " LIKE '" & SelClient.Name & "%' "
|
|
End If
|
|
End If
|
|
If Not IsNothing(SelState) And Not SelState.Equals(Key.KeyState.ANY.ToString()) Then ' If Not IsNothing(SelState) Then
|
|
EvalWhere(bFirstWhere, Query)
|
|
Query &= DB_STATE & " LIKE '" & SelState.ToString() & "%' "
|
|
End If
|
|
Query = Query.TrimEnd(","c, " "c)
|
|
Dim suffixToRemove As String = " WHERE"
|
|
If Not IsNothing(Query) And Not IsNothing(suffixToRemove) And Query.EndsWith(suffixToRemove) Then
|
|
Query = Query.Substring(0, Query.Length - suffixToRemove.Length)
|
|
End If
|
|
End If
|
|
m_SearchResult = New ObservableCollection(Of SearchKey)(ManageDb.ExecuteSearchKeyQuery(Query))
|
|
If (m_SearchResult.Count = 0) Then
|
|
MessageBox.Show("Nessun risultato per i filtri impostati")
|
|
End If
|
|
NotifyPropertyChanged("SearchResult")
|
|
End Sub
|
|
|
|
Private Sub EvalWhere(ByRef bFirst As Boolean, ByRef Query As String)
|
|
If bFirst Then
|
|
bFirst = False
|
|
Else
|
|
Query &= " AND "
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Search
|
|
|
|
#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.MAINMENU
|
|
|
|
End Sub
|
|
|
|
#End Region ' Cancel
|
|
|
|
#Region "Update"
|
|
|
|
' Returns a command that manage the MainWindow_Unloaded command
|
|
Public ReadOnly Property UpdateKey_Command As ICommand
|
|
Get
|
|
If m_cmdUpdate Is Nothing Then
|
|
m_cmdUpdate = New Command(AddressOf Update)
|
|
End If
|
|
Return m_cmdUpdate
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Update(ByVal param As Object)
|
|
If Not IsNothing(m_SelSearchResult) Then
|
|
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
|
|
Map.refUpdateKeyPageVM.Key = m_SelSearchResult
|
|
Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.UPDATEKEY
|
|
Else
|
|
MessageBox.Show("Non è stata selezionata nessuna chiave")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region ' Update
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|
|
|
|
Public Class SearchKey
|
|
Inherits Key
|
|
|
|
Private m_ClientName As String
|
|
Public ReadOnly Property ClientName As String
|
|
Get
|
|
Return m_ClientName
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(ClientReader As MySqlDataReader)
|
|
MyBase.New(ClientReader)
|
|
'm_ClientName = CType(ClientReader(DB_NAME), String)
|
|
If (Not ClientReader(DB_NAME).Equals(DBNull.Value)) Then
|
|
m_ClientName = CType(ClientReader(DB_NAME), String)
|
|
Else
|
|
m_ClientName = Nothing
|
|
End If
|
|
End Sub
|
|
|
|
End Class |