e14101134c
- cancellazione progetti (proj, prod, assegnazioni al supervisor)
250 lines
9.3 KiB
VB.net
250 lines
9.3 KiB
VB.net
Imports System.IO
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtUILib
|
|
|
|
Public Class ProjFileVM
|
|
Inherits ProjectFileVM
|
|
|
|
Public ReadOnly Property ProjFileM As ProjFileM
|
|
Get
|
|
Return m_ProjectFileM
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property nProjId As Integer
|
|
Get
|
|
Return ProjFileM.nProjId
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property nProdId As Integer
|
|
Get
|
|
Return ProjFileM.nProdId
|
|
End Get
|
|
End Property
|
|
|
|
Friend Overrides ReadOnly Property sProjDirPath As String
|
|
Get
|
|
If IsNothing(ProjFileM.nProjId) OrElse ProjFileM.nProjId = 0 Then Return String.Empty
|
|
Return refMainWindowVM.MainWindowM.sProjsDir & "\" & nProjId.ToString("0000")
|
|
End Get
|
|
End Property
|
|
Friend Overrides ReadOnly Property sProjPath As String
|
|
Get
|
|
Dim sPath As String = String.Empty
|
|
If IsNothing(ProjFileM.nProjId) OrElse ProjFileM.nProjId = 0 Then Return String.Empty
|
|
sPath = refMainWindowVM.MainWindowM.sProjsDir & "\" & nProjId.ToString("0000") & "\" & nProjId.ToString("0000") & ".nge"
|
|
Return sPath
|
|
End Get
|
|
End Property
|
|
|
|
Friend Overrides ReadOnly Property sProdDirPath As String
|
|
Get
|
|
Dim sPath As String = String.Empty
|
|
If IsNothing(ProjFileM.nProdId) OrElse ProjFileM.nProdId = 0 Then Return String.Empty
|
|
Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000")
|
|
End Get
|
|
End Property
|
|
Friend Overrides ReadOnly Property sProdPath As String
|
|
Get
|
|
Dim sPath As String = String.Empty
|
|
If IsNothing(ProjFileM.nProdId) OrElse ProjFileM.nProdId = 0 Then Return String.Empty
|
|
Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000") & "\" & nProdId.ToString("0000") & ".nge"
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides Property bIsNew As Boolean
|
|
Get
|
|
Return ProjFileM.bIsNew
|
|
End Get
|
|
Set(value As Boolean)
|
|
ProjFileM.bIsNew = value
|
|
End Set
|
|
End Property
|
|
|
|
Public ReadOnly Property sBTLFileName As String
|
|
Get
|
|
Return ProjFileM.sBTLFileName
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property sListName As String
|
|
Get
|
|
Return ProjFileM.sListName
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property dtExportDate As DateTime
|
|
Get
|
|
Return ProjFileM.dtExportDate
|
|
End Get
|
|
End Property
|
|
|
|
#Region "CONSTRUCTORS"
|
|
|
|
Sub New(ProjectFileM As ProjFileM)
|
|
m_ProjectFileM = ProjectFileM
|
|
End Sub
|
|
|
|
'Sub New(nProjectType As ProjectType, ProjectFileName As String)
|
|
' m_nProjectType = nProjectType
|
|
' If m_nProjectType = ProjectType.PROJ Then
|
|
' Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR)
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(0)) Then
|
|
' Integer.TryParse(DataFromFileName(0), m_nProjId)
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(1)) Then
|
|
' Integer.TryParse(DataFromFileName(1), m_nProdId)
|
|
' Else
|
|
' m_nProdId = 0
|
|
' End If
|
|
' If Not String.IsNullOrEmpty(DataFromFileName(2)) Then
|
|
' m_BTLFileName = DataFromFileName(2)
|
|
' End If
|
|
' ElseIf m_nProjectType = ProjectType.PROD Then
|
|
' Integer.TryParse(ProjectFileName, m_nProdId)
|
|
' End If
|
|
'End Sub
|
|
|
|
'Sub New(nProjectType As ProjectType, nProjId As Integer, nProdId As Integer, sBTLFileName As String)
|
|
' MyBase.New(nProjectType, nProjId, nProdId, sBTLFileName)
|
|
'End Sub
|
|
|
|
#End Region ' CONSTRUCTORS
|
|
|
|
#Region "METHODS"
|
|
|
|
Public Sub SetBTLFileName(BTLFileName As String)
|
|
ProjFileM.sBTLFileName = BTLFileName
|
|
End Sub
|
|
|
|
' 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 False
|
|
Dim sProjectDirPath As String = ""
|
|
sProjectDirPath = CurrProject.sProjDirPath
|
|
' verifico se progetto modificato, e chiedo se salvare
|
|
If EgtGetModified() Then
|
|
If MessageBox.Show("Salvare le modifiche apportate al progetto?", "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
|
' salvo proj
|
|
Map.refProjManagerVM.Save()
|
|
Return True
|
|
Else
|
|
EgtResetModified()
|
|
Return False
|
|
End If
|
|
Else If CurrProject.bIsNew Then
|
|
' lo elimino
|
|
If Directory.Exists(sProjectDirPath) Then
|
|
Directory.Delete(sProjectDirPath, True)
|
|
End If
|
|
DbControllers.m_ProjController.DeleteProj(CurrProject.nProjId)
|
|
If Type = ProjectType.PROD AndAlso CurrProject.nProdId = Map.refProjManagerVM.CurrProj.nProdId Then
|
|
End If
|
|
Map.refProjManagerVM.CurrProj = Nothing
|
|
EgtResetModified()
|
|
Return False
|
|
End If
|
|
DbControllers.m_ProjController.LockByProjId(CurrProject.nProjId, False)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Shared Function PostVerifyProjectModification(CurrProject As ProjFileVM, Type As ProjectType) As Boolean
|
|
|
|
End Function
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class |