Files
LicenceManager/SearchClientPage/SearchClientPageVM.vb
T
Dario Sassi c43ef9c011 LicenceManager 2.1c1 :
- modifiche per AboutBox
- tolte costanti inutili
- semplificato Ini file
- modificata generazione licenza.
2019-03-07 07:51:52 +00:00

269 lines
7.6 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.Windows.Forms
Imports EgtWPFLib5
Imports MySql.Data.MySqlClient
Public Class SearchClientPageVM
Inherits ClientPageVM
#Region "FIELDS & PROPERTIES"
Private m_SelSearchResult As SearchClient
Public Property SelSearchResult As SearchClient
Get
Return m_SelSearchResult
End Get
Set(value As SearchClient)
m_SelSearchResult = value
End Set
End Property
Private m_SearchResult As ObservableCollection(Of SearchClient)
Public ReadOnly Property SearchResult As ObservableCollection(Of SearchClient)
Get
Return m_SearchResult
End Get
End Property
Private m_ResellerList As List(Of Reseller)
Public Overloads ReadOnly Property ResellerList As List(Of Reseller)
Get
Return m_ResellerList
End Get
End Property
Private m_SelReseller As Reseller
Public Overloads Property SelReseller As Reseller
Get
Return m_SelReseller
End Get
Set(value As Reseller)
m_SelReseller = value
NotifyPropertyChanged("SelReseller")
End Set
End Property
' Definizione comandi
Private m_cmdSearch As Command
Private m_cmdCancel As Command
Private m_cmdUpdate As Command
Private m_cmdDelete As Command
#Region "Messages"
Public ReadOnly Property SearchClientMsg As String
Get
Return "Search client"
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
Public ReadOnly Property DeleteMsg As String
Get
Return "Delete"
End Get
End Property
#End Region ' Messages
#End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTOR"
Sub New()
' Imposto riferimento nella mappa
Map.SetRefSearchClientPageVM(Me)
End Sub
#End Region ' CONSTRUCTOR
#Region "METHODS"
Friend Sub InitSearchClientPage()
MyBase.InitClientPage()
' Carico lista Reseller
Dim Query As String = "SELECT * FROM " & DB_RESELLER
m_ResellerList = ManageDb.ExecuteResellerQuery(Query)
NotifyPropertyChanged("ResellerList")
m_SearchResult = New ObservableCollection(Of SearchClient)()
NotifyPropertyChanged("SearchResult")
End Sub
#End Region ' METHODS
#Region "COMMANDS"
#Region "Search"
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property SearchClient_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 Client
Dim Query As String = "SELECT * FROM " & DB_CLIENT & " INNER JOIN " & DB_RESELLER &
" ON " & DB_CLIENT & "." & DB_RESELLERID & " = " & DB_RESELLER & "." & DB_RESELLERID & " "
Dim bFirstWhere As Boolean = True
If Not String.IsNullOrWhiteSpace(Name) OrElse
Not String.IsNullOrWhiteSpace(Email) OrElse
Not IsNothing(SelReseller) Then
Query &= "WHERE "
If Not String.IsNullOrWhiteSpace(Name) Then
EvalWhere(bFirstWhere, Query)
Query &= DB_NAME & " LIKE '" & Name & "%' "
End If
If Not IsNothing(SelReseller) Then
EvalWhere(bFirstWhere, Query)
Query &= DB_RESELLERNAME & " LIKE '" & SelReseller.ResellerName & "%' "
End If
If Not IsNothing(Email) Then
EvalWhere(bFirstWhere, Query)
Query &= DB_EMAIL & " LIKE '" & Email & "%' "
End If
Query = Query.TrimEnd(","c, " "c)
End If
m_SearchResult = New ObservableCollection(Of SearchClient)(ManageDb.ExecuteSearchClientQuery(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 UpdateClient_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.refUpdateClientPageVM.IdToUpdate = m_SelSearchResult.ClientID
Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.UPDATECLIENT
Else
MessageBox.Show("Non è stato selezionato nessun cliente")
End If
End Sub
#End Region ' Update
#Region "Delete"
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property DeleteClient_Command As ICommand
Get
If m_cmdDelete Is Nothing Then
m_cmdDelete = New Command(AddressOf Delete)
End If
Return m_cmdDelete
End Get
End Property
Public Sub Delete(ByVal param As Object)
If Not IsNothing(m_SelSearchResult) Then
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
If MessageBox.Show("Do you really want to delete this Client?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then
MsgBox("Operation cancelled")
Exit Sub
End If
' Cerco nella tabella Client
Dim Query As String = "DELETE FROM " & DB_CLIENT & " WHERE " & DB_CLIENTID & " = " & m_SelSearchResult.ClientID
Dim Result As Integer = ExecuteQuery(Query)
If Result <> 0 Then
MsgBox("Operation executed")
End If
' Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.SEARCHCLIENT
Search(param)
Else
MessageBox.Show("Non è stato selezionato nessun cliente")
End If
End Sub
#End Region ' Delete
#End Region ' COMMANDS
End Class
Public Class SearchClient
Inherits Client
Private m_ResellerName As String
Public ReadOnly Property ResellerName As String
Get
Return m_ResellerName
End Get
End Property
Sub New(ClientReader As MySqlDataReader)
MyBase.New(ClientReader)
m_ResellerName = CType(ClientReader(DB_RESELLERNAME), String)
End Sub
End Class