test modifiche non OK

This commit is contained in:
Emmanuele Sassi
2023-10-02 15:31:52 +02:00
parent ce20fa0eb3
commit 1f36c9a5b0
6 changed files with 324 additions and 70 deletions
@@ -19,7 +19,7 @@ Public MustInherit Class NewOpenProjectFileDialogVM
EXPORTDATE = 1
End Enum
Private Enum FilterTypes As Integer
Protected Enum FilterTypes As Integer
NULL = 0
ID = 1
BTLFILENAME = 2
@@ -36,9 +36,9 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Enum
Public Enum RowQuantities As Integer
FIFTY = 0
HUNDRED = 1
HUNDREDANDFIFTY = 2
TEN = 0
TWENTY = 1
THIRTY = 2
End Enum
Friend Event m_CloseWindow(bDialogResult As Boolean)
@@ -67,6 +67,27 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Get
End Property
Private m_colProjId_Name As EgtDataGridColumn
Public ReadOnly Property colProjId_Name As EgtDataGridColumn
Get
Return m_colProjId_Name
End Get
End Property
Private m_colProdId_Name As EgtDataGridColumn
Public ReadOnly Property colProdId_Name As EgtDataGridColumn
Get
Return m_colProdId_Name
End Get
End Property
Private m_colCreateDate_Name As EgtDataGridColumn
Public ReadOnly Property colCreateDate_Name As EgtDataGridColumn
Get
Return m_colCreateDate_Name
End Get
End Property
Protected m_ProjColumns As New ObservableCollection(Of EgtDataGridColumn)
Public Property ProjColumns As ObservableCollection(Of EgtDataGridColumn)
Get
@@ -185,7 +206,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Set(value As Integer)
' aggiorno lista da Db
RefreshProjectList()
m_ProjectList_View.Refresh()
'm_ProjectList_View.Refresh()
UpdatePageList()
End Set
End Property
@@ -227,7 +249,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
NotifyPropertyChanged(NameOf(Date_Visibility))
' aggiorno lista da Db
RefreshProjectList()
m_ProjectList_View.Refresh()
' m_ProjectList_View.Refresh()
UpdatePageList()
End Set
End Property
@@ -242,7 +265,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_STARTDATE, lStartDate.ToString())
' aggiorno lista da Db
RefreshProjectList()
m_ProjectList_View.Refresh()
' m_ProjectList_View.Refresh()
UpdatePageList()
End Set
End Property
@@ -257,7 +281,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_ENDDATE, lEndDate.ToString())
' aggiorno lista da Db
RefreshProjectList()
m_ProjectList_View.Refresh()
' m_ProjectList_View.Refresh()
UpdatePageList()
End Set
End Property
@@ -275,7 +300,7 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Get
End Property
Private m_SelRowQuantity As RowQuantities
Protected m_SelRowQuantity As RowQuantities
Public Property SelRowQuantity As Integer
Get
Return m_SelRowQuantity
@@ -283,7 +308,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Set(value As Integer)
m_SelRowQuantity = value
RefreshProjectList()
m_ProjectList_View.Refresh()
' m_ProjectList_View.Refresh()
UpdatePageList()
End Set
End Property
@@ -308,7 +334,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
If Not IsNothing(SearchDate) Then SearchDate.Clear()
' setto il Tipo Filtro a NULL e refresho la lista dei progetti (in modo da averli visibili tutti)
m_SelFilterType = m_FilterTypeList(0)
m_ProjectList_View.Refresh()
'm_ProjectList_View.Refresh()
UpdatePageList()
' ora setto il valore scelto come Tipo Filtro
m_SelFilterType = value
Select Case m_SelFilterType.Id
@@ -332,7 +359,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Get
Set(value As String)
m_SearchText = value
m_ProjectList_View.Refresh()
'm_ProjectList_View.Refresh()
UpdatePageList()
End Set
End Property
@@ -390,9 +418,9 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Set(value As Boolean)
m_bViewArchived = value
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_VIEWARCHIVED, If(bViewArchived, 1, 0))
If Not IsNothing( m_colArchived_Name) Then
m_colArchived_Name.Visible = value
RefreshProjectList()
If Not IsNothing(m_colArchived_Name) Then
m_colArchived_Name.Visible = value
RefreshProjectList()
End If
End Set
End Property
@@ -419,6 +447,24 @@ Public MustInherit Class NewOpenProjectFileDialogVM
NotifyPropertyChanged(NameOf(bDelete_IsEnabled))
End Sub
Protected m_PageList As ObservableCollection(Of ProdItem)
Public Property PageList As ObservableCollection(Of ProdItem)
Get
Return m_PageList
End Get
Set(value As ObservableCollection(Of ProdItem))
m_PageList = value
End Set
End Property
Private m_nPageIndex As Integer = 1
Public ReadOnly Property nPageIndex As Integer
Get
Return m_nPageIndex
End Get
End Property
Protected m_ChangeOpenedProjectOnCancel As Boolean = False
#Region "Messages"
@@ -545,6 +591,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Private m_cmdDelete As ICommand
Private m_cmdArchive As ICommand
Private m_cmdCancel As ICommand
Private m_cmdPrevPage As ICommand
Private m_cmdNextPage As ICommand
#End Region ' FIELDS & PROPERTIES
@@ -555,6 +603,9 @@ Public MustInherit Class NewOpenProjectFileDialogVM
LoadColumns()
m_colProdFile_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_NAME)
m_colArchived_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_ARCHIVED)
m_colProjId_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_PROJID)
m_colProdId_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_PRODID)
m_colCreateDate_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_CREATEDATE)
' leggo valori per filtri
m_SelDayType = GetMainPrivateProfileInt(S_OPENFILEDIALOG, K_DAYTYPE, 0)
Select Case m_SelDayType
@@ -650,17 +701,65 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Return AllFilesInDir.Any(Function(x) Path.GetExtension(x).ToLower() = ".nge")
End Function
Protected Function ProjectFilter(Proj As Object) As Boolean
Dim bProjectOk As Boolean = True
'If TypeOf Proj Is ProjFileVM Then
Dim CurrProj As ProdItem = DirectCast(Proj, ProdItem)
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
(m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not CurrProj.ProjFileList.Any(Function(x) SearchDate.Contains(DirectCast(x, ProjFileVM).dtExportDate.Date))) OrElse
(m_SelFilterType.Id = BTLDateTypes.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
(m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
'Protected Function ProjectFilter(Proj As Object) As Boolean
' Dim bProjectOk As Boolean = True
' 'If TypeOf Proj Is ProjFileVM Then
' Dim CurrProj As ProdItem = DirectCast(Proj, ProdItem)
' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
' (m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not CurrProj.ProjFileList.Any(Function(x) SearchDate.Contains(DirectCast(x, ProjFileVM).dtExportDate.Date))) OrElse
' (m_SelFilterType.Id = BTLDateTypes.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
' (m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
' 'ElseIf TypeOf Proj Is ProdFileVM Then
' ' Dim CurrProj As ProdFileVM = DirectCast(Proj, ProdFileVM)
' ' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
' ' (m_SelFilterType.Id = BTLDateTypes.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
' ' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
' ' (m_SelFilterType.Id = FilterTypes.ID AndAlso CurrProj.sProdId.ToString.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
' ' (m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
' ' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
' 'End If
' Return bProjectOk
'End Function
Public Overridable Function UpdatePageList() As Boolean
Dim FilteredList As IEnumerable(Of ProdItem) = m_ProjectList.Where(Function(x)
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso
((m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso x.ProjFileList.Any(Function(y) DirectCast(y, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso x.ProjFileList.Any(Function(y) DirectCast(y, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso x.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then Return False
Return True
End Function)
Dim nPageRowQty As Integer = 0
Select Case m_SelRowQuantity
Case RowQuantities.TEN
nPageRowQty = 10
Case RowQuantities.TWENTY
nPageRowQty = 20
Case RowQuantities.THIRTY
nPageRowQty = 30
End Select
Dim nStart = nPageIndex * nPageRowQty
If (nPageIndex - 1) * nPageRowQty + 1 > FilteredList.Count() Then
Return False
End If
' FilteredList = FilteredList.OrderBy(Of ProdItem)()
m_PageList = New ObservableCollection(Of ProdItem)(FilteredList.Skip((nPageIndex - 1) * nPageRowQty + 1).Take(nPageIndex * nPageRowQty).Select(Function(x) x))
NotifyPropertyChanged(NameOf(PageList))
Return True
'Dim bProjectOk As Boolean = True
''If TypeOf Proj Is ProjFileVM Then
'Dim CurrProj As ProdItem = DirectCast(PROJ, ProdItem)
'If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
' (m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not CurrProj.ProjFileList.Any(Function(x) SearchDate.Contains(DirectCast(x, ProjFileVM).dtExportDate.Date))) OrElse
' (m_SelFilterType.Id = BTLDateTypes.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
'If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
' (m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
'ElseIf TypeOf Proj Is ProdFileVM Then
' Dim CurrProj As ProdFileVM = DirectCast(Proj, ProdFileVM)
' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
@@ -670,6 +769,15 @@ Public MustInherit Class NewOpenProjectFileDialogVM
' (m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
'End If
' Return bProjectOk
End Function
Protected Function ProjectFilter(CurrProj As ProdItem) As Boolean
Dim bProjectOk As Boolean = True
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
(m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
Return bProjectOk
End Function
@@ -775,6 +883,60 @@ Public MustInherit Class NewOpenProjectFileDialogVM
#End Region ' Cancel
#Region "PrevPage"
''' <summary>
''' Returns a command that do New.
''' </summary>
Public ReadOnly Property PrevPage_Command As ICommand
Get
If m_cmdPrevPage Is Nothing Then
m_cmdPrevPage = New Command(AddressOf PrevPage)
End If
Return m_cmdPrevPage
End Get
End Property
''' <summary>
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Public Overridable Sub PrevPage()
If m_nPageIndex > 1 Then
m_nPageIndex -= 1
End If
UpdatePageList()
NotifyPropertyChanged(NameOf(nPageIndex))
End Sub
#End Region ' PrevPage
#Region "NextPage"
''' <summary>
''' Returns a command that do New.
''' </summary>
Public ReadOnly Property NextPage_Command As ICommand
Get
If m_cmdNextPage Is Nothing Then
m_cmdNextPage = New Command(AddressOf NextPage)
End If
Return m_cmdNextPage
End Get
End Property
''' <summary>
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Public Overridable Sub NextPage()
m_nPageIndex += 1
If Not UpdatePageList() Then
m_nPageIndex -= 1
End If
NotifyPropertyChanged(NameOf(nPageIndex))
End Sub
#End Region ' NextPage
#End Region ' Commands
End Class