Imports EgtWPFLib5 Public Class UpdateClientPageVM Inherits ClientPageVM #Region "FIELDS & PROPERTIES" Private m_IdToUpdate As Integer Public Property IdToUpdate As Integer Get Return m_IdToUpdate End Get Set(value As Integer) m_IdToUpdate = value End Set 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_cmdUpdate As Command Private m_cmdCancel As Command #Region "Messages" Public ReadOnly Property UpdateClientMsg As String Get Return "Update client" End Get End Property Public ReadOnly Property UpdateMsg As String Get Return "Update" 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.SetRefUpdateClientPageVM(Me) End Sub #End Region ' CONSTRUCTOR #Region "METHODS" Friend Sub InitUpdateClientPage() ' Carico campo Name Dim Query As String = "SELECT " & DB_NAME & " FROM " & DB_CLIENT & " WHERE " & DB_CLIENTID & " LIKE " & IdToUpdate Name = ManageDb.ExecuteStringQuery(Query, DB_NAME)(0) NotifyPropertyChanged("Name") ' Carico campo Email Dim eQuery As String = "SELECT " & DB_EMAIL & " FROM " & DB_CLIENT & " WHERE " & DB_CLIENTID & " LIKE " & IdToUpdate Email = ManageDb.ExecuteStringQuery(eQuery, DB_EMAIL)(0) NotifyPropertyChanged("Email") ' Carico lista Reseller Dim rQuery As String = "SELECT * FROM " & DB_RESELLER m_ResellerList = ManageDb.ExecuteResellerQuery(rQuery) NotifyPropertyChanged("ResellerList") ' Carico elemento della lista Reseller selezionato precdentemente Dim selQuery As String = "SELECT * FROM " & DB_CLIENT & " INNER JOIN " & DB_RESELLER & " ON " & DB_CLIENT & "." & DB_RESELLERID & " = " & DB_RESELLER & "." & DB_RESELLERID & " WHERE " & DB_CLIENTID & " LIKE " & IdToUpdate 'm_SelReseller = ManageDb.ExecuteResellerQuery(rQuery)(0) 'm_SelReseller = m_ResellerList(2) m_SelReseller = m_ResellerList.FirstOrDefault(Function(resel) resel.ResellerName.Equals(ManageDb.ExecuteResellerQuery(selQuery)(0).ResellerName)) NotifyPropertyChanged("SelReseller") End Sub #End Region ' METHODS #Region "COMMANDS" #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 String.IsNullOrWhiteSpace(Name) OrElse Not String.IsNullOrWhiteSpace(Email) OrElse Not IsNothing(SelReseller) Then ' Cerco nella tabella Client Dim Query As String = "UPDATE " & DB_CLIENT Dim bFirstWhere As Boolean = True If Not String.IsNullOrWhiteSpace(Name) OrElse Not String.IsNullOrWhiteSpace(Email) OrElse Not IsNothing(SelReseller) Then Query &= " SET " If Not String.IsNullOrWhiteSpace(Name) Then EvalWhere(bFirstWhere, Query) Query &= DB_NAME & " = '" & Name & "' " End If If Not String.IsNullOrWhiteSpace(Email) Then EvalWhere(bFirstWhere, Query) Query &= DB_EMAIL & " = '" & Email & "' " End If If Not IsNothing(SelReseller) Then EvalWhere(bFirstWhere, Query) Dim reQuery As String = "SELECT * FROM " & DB_RESELLER & " WHERE " reQuery &= DB_RESELLERNAME & " = '" & SelReseller.ResellerName & "' " reQuery = reQuery.TrimEnd(","c, " "c) Dim reseller As Reseller = ManageDb.ExecuteResellerQuery(reQuery).Item(0) Dim reId As Integer = reseller.ResellerID Query &= DB_RESELLERID & " = '" & reId & "' " 'Query &= DB_RESELLERNAME & " = '" & SelReseller.ResellerName & "%' " End If Query &= "WHERE " & DB_CLIENTID & " = " & IdToUpdate Query = Query.TrimEnd(","c, " "c) End If ManageDb.ExecuteQuery(Query) ' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded. Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.SEARCHCLIENT Else MessageBox.Show("Completare almeno un campo") End If End Sub Private Sub EvalWhere(ByRef bFirst As Boolean, ByRef Query As String) If bFirst Then bFirst = False Else Query &= ", " End If End Sub #End Region ' Update #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.SEARCHCLIENT End Sub #End Region ' Cancel '#Region "GetResellerID" ' ' Returns a command that manage the MainWindow_Unloaded command ' Public Sub GetResellerID(ByVal param As Object) ' Dim Query As String = "SELECT " & DB_RESELLERID & "FROM" & DB_RESELLER & "WHERE " ' Query &= DB_RESELLERNAME & " = '" & SelReseller.ResellerName & "%' " ' Query = Query.TrimEnd(","c, " "c) ' ' ManageDb.ExecuteQuery(Query) ' Dim cmd As MySqlCommand = New MySqlCommand(stm, conn) ' Dim value As Object = cmd.ExecuteScalar() ' If value! = null Then ' String nama_student = nama_studentObj.ToString() ' End If ' End Sub '#End Region ' GetResellerID #End Region 'COMMANDS End Class