Files
egtbeamwall/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProjFileVM.vb
T
Emmanuele Sassi df46f3b5a5 - correzioni per gestione selezione in OnlyProd
- gestione comune del CurrProj e CurrProd
2023-11-13 17:46:27 +01:00

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