c43ef9c011
- modifiche per AboutBox - tolte costanti inutili - semplificato Ini file - modificata generazione licenza.
264 lines
7.8 KiB
VB.net
264 lines
7.8 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.Windows
|
|
Imports EgtWPFLib5
|
|
Imports MySql.Data.MySqlClient
|
|
|
|
Public Class SearchVersionPageVM
|
|
Inherits VersionPageVM
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_SelSearchResult As SearchVersion
|
|
Public Property SelSearchResult As SearchVersion
|
|
Get
|
|
Return m_SelSearchResult
|
|
End Get
|
|
Set(value As SearchVersion)
|
|
m_SelSearchResult = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SearchResult As ObservableCollection(Of SearchVersion)
|
|
Public ReadOnly Property SearchResult As ObservableCollection(Of SearchVersion)
|
|
Get
|
|
Return m_SearchResult
|
|
End Get
|
|
End Property
|
|
|
|
Private m_ProductList As List(Of Product)
|
|
Public Overloads ReadOnly Property ProductList As List(Of Product)
|
|
Get
|
|
Return m_ProductList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelProduct As Product
|
|
Public Overloads Property SelProduct As Product
|
|
Get
|
|
Return m_SelProduct
|
|
End Get
|
|
Set(value As Product)
|
|
m_SelProduct = value
|
|
NotifyPropertyChanged("SelProduct")
|
|
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 SearchVersionMsg As String
|
|
Get
|
|
Return "Search Version"
|
|
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.SetRefSearchVersionPageVM(Me)
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub InitSearchVersionPage()
|
|
m_SearchResult = New ObservableCollection(Of SearchVersion)()
|
|
NotifyPropertyChanged("SearchResult")
|
|
Dim Query As String = "SELECT * FROM " & DB_PRODUCT
|
|
m_ProductList = ManageDb.ExecuteProductQuery(Query)
|
|
NotifyPropertyChanged("ProductList")
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Search"
|
|
|
|
' Returns a command that manage the MainWindow_Unloaded command
|
|
Public ReadOnly Property SearchVersion_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 Version
|
|
Dim Query As String = "SELECT * FROM " & DB_VERSION & " INNER JOIN " & DB_PRODUCT & " ON " & DB_VERSION & "." & DB_PRODUCTID & " = " & DB_PRODUCT & "." & DB_PRODUCTID & " "
|
|
Dim bFirstWhere As Boolean = True
|
|
If Not String.IsNullOrWhiteSpace(VersionNumber) OrElse
|
|
Not IsNothing(SelProduct) Then
|
|
Query &= "WHERE "
|
|
If Not String.IsNullOrWhiteSpace(VersionNumber) Then
|
|
If Not VersionNumber.Equals("0") Then ' Lo 0 nel campo VersionNumber corrisponde ad ANY
|
|
EvalWhere(bFirstWhere, Query)
|
|
Query &= DB_VERSIONNUMBER & " LIKE '" & VersionNumber & "%' "
|
|
End If
|
|
End If
|
|
If Not IsNothing(SelProduct) Then
|
|
EvalWhere(bFirstWhere, Query)
|
|
Query &= DB_PRODUCTNAME & " LIKE '" & SelProduct.ProductName & "%' "
|
|
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 SearchVersion)(ManageDb.ExecuteSearchVersionQuery(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 UpdateVersion_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.refUpdateVersionPageVM.IdToUpdate = m_SelSearchResult.VersionID
|
|
Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.UPDATEVERSION
|
|
Else
|
|
MessageBox.Show("Non è stata selezionata nessuna versione")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region ' Update
|
|
|
|
#Region "Delete"
|
|
|
|
' Returns a command that manage the MainWindow_Unloaded command
|
|
Public ReadOnly Property DeleteVersion_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 Version?", "Delete", MessageBoxButton.YesNo, MessageBoxImage.Warning) = MessageBoxResult.No Then
|
|
MessageBox.Show("Operation cancelled")
|
|
Exit Sub
|
|
End If
|
|
' Cerco nella tabella Version
|
|
Dim Query As String = "DELETE FROM " & DB_VERSION & " WHERE " & DB_VERSIONID & " = " & m_SelSearchResult.VersionID
|
|
Dim Result As Integer = ExecuteQuery(Query)
|
|
If Result <> 0 Then
|
|
MessageBox.Show("Operation executed")
|
|
End If
|
|
' Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
|
|
Search(param)
|
|
Else
|
|
MessageBox.Show("Non è stata selezionata nessuna versione")
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Delete
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
|
|
End Class
|
|
|
|
Public Class SearchVersion
|
|
Inherits Version
|
|
|
|
Private m_ProductName As String
|
|
Public ReadOnly Property ProductName As String
|
|
Get
|
|
Return m_ProductName
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(VersionReader As MySqlDataReader)
|
|
MyBase.New(VersionReader)
|
|
m_ProductName = CType(VersionReader(DB_PRODUCTNAME), String)
|
|
End Sub
|
|
|
|
End Class
|