df46f3b5a5
- gestione comune del CurrProj e CurrProd
176 lines
7.7 KiB
VB.net
176 lines
7.7 KiB
VB.net
Imports System.IO
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtUILib
|
|
|
|
Public Class ProjFileVM
|
|
Inherits Core.ProjFileVM
|
|
|
|
Public ReadOnly Property bIsEnabled As Boolean
|
|
Get
|
|
Return Not DbControllers.bNetwork OrElse Not bIsLocked
|
|
End Get
|
|
End Property
|
|
|
|
#Region "CONSTRUCTORS"
|
|
|
|
Sub New(ProjectFileM As ProjFileM)
|
|
MyBase.New(ProjectFileM)
|
|
' verifico valore description
|
|
If Not IsNothing(ProjectFileM) AndAlso String.IsNullOrWhiteSpace(ProjectFileM.sDescription) Then
|
|
DbControllers.m_ProjController.UpdateDescription(ProjectFileM.nProjId, ProjectFileM.sBTLFileName)
|
|
ProjectFileM.sDescription = ProjectFileM.sBTLFileName
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTORS
|
|
|
|
#Region "METHODS"
|
|
|
|
'' funzione che restituisce le parti di nome file
|
|
'Friend Shared Function VerifyProjectFile(nProjectType As ProjectType, ProjectFileName As String, ByRef nProjId As Integer, ByRef nProdId As Integer, ByRef sBTLFileName As String) As Boolean
|
|
' If nProjectType = ProjectType.PROJ Then
|
|
' Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR)
|
|
' If DataFromFileName.Count = 3 Then
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
|
|
' Integer.TryParse(DataFromFileName(0), nProjId)
|
|
' Else Return False
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
|
|
' Integer.TryParse(DataFromFileName(1), nProdId)
|
|
' Else
|
|
' nProdId = 0
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(2)) Then
|
|
' sBTLFileName = DataFromFileName(2)
|
|
' End If
|
|
' Return True
|
|
' Else Return False
|
|
' End If
|
|
' ElseIf nProjectType = ProjectType.PROD Then
|
|
' Return Integer.TryParse(ProjectFileName, nProdId)
|
|
' Else Return False
|
|
' End If
|
|
'End Function
|
|
|
|
'' funzione che dato un nome file e il tipo restituisce il corretto numero di progetto
|
|
'Friend Shared Function GetProjectNumber(nProjectType As ProjectType, ProjectFileName As String, ByRef nProjId As Integer, ByRef nProdId As Integer, ByRef sBTLFileName As String) As Boolean
|
|
' If String.IsNullOrWhiteSpace(ProjectFileName) Then
|
|
' nProjId = 0
|
|
' nProdId = 0
|
|
' sBTLFileName = ""
|
|
' Return False
|
|
' ElseIf ProjectFileName.Contains(FILENAMESEPARATOR) Then
|
|
' Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR)
|
|
' If DataFromFileName.Count = 3 Then
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
|
|
' Integer.TryParse(DataFromFileName(0), nProjId)
|
|
' Else Return False
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
|
|
' Integer.TryParse(DataFromFileName(1), nProdId)
|
|
' Else
|
|
' nProdId = 0
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(2)) Then
|
|
' sBTLFileName = DataFromFileName(2)
|
|
' End If
|
|
' Return True
|
|
' Else Return False
|
|
' End If
|
|
' ElseIf nProjectType = ProjectType.PROJ Then
|
|
' Dim ProjectFileNameProd As String = Integer.TryParse(ProjectFileName, nProdId)
|
|
' Dim nTempProjId As Integer = 0
|
|
' Dim nTempProdId As Integer = 0
|
|
' Dim sTempBTLFileName As String = ""
|
|
' ' ricavo lista cartelle proj
|
|
' Dim AllDirsInDir As IEnumerable(Of String) = IO.Directory.EnumerateDirectories(Map.refMainWindowVM.MainWindowM.sProjsDir)
|
|
' For Each Directory In AllDirsInDir
|
|
' Dim AllFilesInDir As IEnumerable(Of String) = IO.Directory.EnumerateFiles(Directory)
|
|
' For Each File In AllFilesInDir
|
|
' If Path.GetExtension(File).ToLower() = ".nge" Then
|
|
' If File.Contains(FILENAMESEPARATOR) Then
|
|
' Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR)
|
|
' If DataFromFileName.Count = 3 Then
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
|
|
' Integer.TryParse(DataFromFileName(0), nTempProjId)
|
|
' Else Return False
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
|
|
' Integer.TryParse(DataFromFileName(1), nTempProdId)
|
|
' Else
|
|
' nProdId = 0
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(2)) Then
|
|
' sTempBTLFileName = DataFromFileName(2)
|
|
' End If
|
|
' If ProjectFileNameProd = nTempProdId Then
|
|
' nProjId = nTempProjId
|
|
' nProdId = nTempProdId
|
|
' sTempBTLFileName = sBTLFileName
|
|
' Return True
|
|
' End If
|
|
' Else Return False
|
|
' End If
|
|
' End If
|
|
' End If
|
|
' Next
|
|
' Next
|
|
' End If
|
|
' Return False
|
|
'End Function
|
|
|
|
Friend Shared Function VerifyProjectModification(CurrProject As ProjFileVM, Type As ProjectType) As Boolean
|
|
If IsNothing(CurrProject) Then Return True
|
|
Dim sProjectDirPath As String = ""
|
|
sProjectDirPath = CurrProject.sProjDirPath
|
|
' verifico se progetto modificato, e chiedo se salvare
|
|
If EgtGetModified() OrElse CurrProject.bIsNew OrElse Map.refCALCPanelVM.IsMachineModified() Then
|
|
Select Case MessageBox.Show(EgtMsg(61875), "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)
|
|
Case MessageBoxResult.Yes
|
|
' salvo proj
|
|
If Not IsNothing(Map.refProjManagerVM) Then
|
|
Map.refProjManagerVM.Save()
|
|
ElseIf Not IsNothing(Map.refOnlyProdManagerVM) Then
|
|
Map.refOnlyProdManagerVM.Save()
|
|
End If
|
|
Map.refCALCPanelVM.IsMachineApplied = False
|
|
Case MessageBoxResult.Cancel
|
|
Return False
|
|
Case Else ' No
|
|
EgtResetModified()
|
|
Map.refCALCPanelVM.RevertToOriginalMachine()
|
|
Map.refCALCPanelVM.IsMachineApplied = False
|
|
If CurrProject.bIsNew Then
|
|
' lo elimino
|
|
If Directory.Exists(sProjectDirPath) Then
|
|
Directory.Delete(sProjectDirPath, True)
|
|
End If
|
|
If Not IsNothing(Map.refProjManagerVM) Then
|
|
Map.refProjManagerVM.m_MruFiles.Remove(CurrProject.sProjPath)
|
|
Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
|
|
ElseIf Not IsNothing(Map.refOnlyProdManagerVM) Then
|
|
Map.refOnlyProdManagerVM.m_MruFiles.Remove(CurrProject.sProjPath)
|
|
Map.refOnlyProdManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
|
|
End If
|
|
|
|
' CheckMe impostata come cancellazione FISICA dal DB...
|
|
DbControllers.m_ProjController.DeleteProj(CurrProject.nProjId, False)
|
|
If Not IsNothing(Map.refProjManagerVM) Then
|
|
ProjectManagerVM.CurrProj = Nothing
|
|
ElseIf Not IsNothing(Map.refOnlyProdManagerVM) Then
|
|
Map.refOnlyProdManagerVM.CurrProj = Nothing
|
|
End If
|
|
EgtResetModified()
|
|
Return True
|
|
End If
|
|
End Select
|
|
Else
|
|
EgtResetModified()
|
|
End If
|
|
DbControllers.m_ProjController.LockByProjId(CurrProject.nProjId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
|
|
Return True
|
|
End Function
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class |