Files
icarus/Icarus/MachiningManager/CurrMachiningPanelVM.vb
T
Emmanuele Sassi 0532c0c486 - cambio nome del progetto in Icarus
- gestione ribs completata
- nuove funzionalita' introdotte su tabella TFS
- correzioni e migliorie varie
2022-09-08 17:36:35 +02:00

143 lines
4.6 KiB
VB.net

Imports EgtUILib
Imports EgtWPFLib5
Public Class CurrMachiningPanelVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Private m_CurrMachining As CurrMachining
Public ReadOnly Property CurrMachining As CurrMachining
Get
Return m_CurrMachining
End Get
End Property
Friend Sub SetCurrMachining(CurrMachining As CurrMachining)
m_CurrMachining = CurrMachining
NotifyPropertyChanged(NameOf(CurrMachining))
Map.refTopPanelVM.UpdateCurrMachining()
End Sub
' Definizione comandi
Private m_cmdOk As ICommand
Private m_cmdCancel As ICommand
Private m_cmdSaveInDb As ICommand
#End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTORS"
Sub New()
' Creo riferimento a questa classe in Map
Map.SetRefCurrMachiningPanelVM(Me)
End Sub
#End Region ' CONSTRUCTORS
Friend Sub ReadMachParamFromSelPart()
If IsNothing(Map.refTopPanelVM.SelPart) Then Return
Dim nData As Integer = 0
m_CurrMachining = New CurrMachining(Map.refTopPanelVM.SelPart.nPartId)
SetCurrMachining(m_CurrMachining)
' aggiorno parametri mostrati nella barra
NotifyPropertyChanged(NameOf(CurrMachining))
Map.refTopPanelVM.UpdateCurrMachining()
End Sub
#Region "COMMANDS"
#Region "Ok"
Public ReadOnly Property Ok_Command As ICommand
Get
If m_cmdOk Is Nothing Then
m_cmdOk = New Command(AddressOf Ok)
End If
Return m_cmdOk
End Get
End Property
Public Sub Ok()
' scrivo i parametri modificati
m_CurrMachining.WriteCurrParamInPart(Map.refTopPanelVM.SelPart.nPartId)
' ripristino modalita' standard
Map.refTopPanelVM.SelPage = Pages.MODIFY
End Sub
#End Region ' Ok
#Region "Cancel"
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()
' ripristino modalita' standard
Map.refTopPanelVM.SelPage = Pages.MODIFY
End Sub
#End Region ' Cancel
#Region "SaveInDb"
Public ReadOnly Property SaveInDb_Command As ICommand
Get
If m_cmdSaveInDb Is Nothing Then
m_cmdSaveInDb = New Command(AddressOf SaveInDb)
End If
Return m_cmdSaveInDb
End Get
End Property
Public Sub SaveInDb()
If IsNothing(m_CurrMachining) Then Return
' apro finestra di scelta nome
Dim SaveInDbWndVM As New MachSaveInDbWndVM(Map.refTopPanelVM.SelMachining.sName)
Dim SaveInDbWndV As New MachSaveInDbWndV(Application.Current.MainWindow, SaveInDbWndVM)
If SaveInDbWndV.ShowDialog Then
' recupero primo indice libero
Dim sMachiningIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Dim nIndex As Integer = 1
Dim sGUID As String = ""
While GetPrivateProfileString(nIndex, MAC_GUID, "", sGUID, sMachiningIniFilePath) > 0
nIndex += 1
End While
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Dim sNewMachGUID As String = Guid.NewGuid.ToString()
WritePrivateProfileString(nIndex, MAC_GUID, sNewMachGUID, sMacIniFilePath)
WritePrivateProfileString(nIndex, MAC_NAME, SaveInDbWndVM.sName, sMacIniFilePath)
' creo categoria materiali con attivo materiale corrente
Dim MaterialCathegory As New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, 0)
Dim SelMaterialParam As MaterialMachiningParam = MaterialCathegory.MachiningParamList.FirstOrDefault(Function(x As MaterialMachiningParam) x.sGUID = Map.refTopPanelVM.SelMaterial.sGUID)
If Not IsNothing(SelMaterialParam) Then
SelMaterialParam.bValue = True
End If
' aggiungo categoria materiali a lavorazione corrente
m_CurrMachining.CathegoryList.Add(MaterialCathegory)
' scrivo parametri nuova lavorazione in Db
For Each Cathegory In m_CurrMachining.CathegoryList
Cathegory.WriteParamOnDb(nIndex)
Next
' ricarico lista lavorazioni top panel e db
Map.refTopPanelVM.InitMachiningsList()
Map.refMachiningDbVM.Init()
' seleziono quella appena creata
Map.refTopPanelVM.SelMachining = Map.refTopPanelVM.MachiningList.FirstOrDefault(Function(x) x.sGUID = sNewMachGUID)
Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.SelMachining))
End If
End Sub
#End Region ' SaveInDb
#End Region ' COMMANDS
End Class