Files
egtbeamwall/EgtBEAMWALL.Optimizer/Utility/Configuration.vb
T
Demetrio Cassarino e900b69552 EgtBEAMWALL 3.1.3.3:
-corretto salvataggio parametri generali btl
-corretto lettura file defaultstrategy
2026-03-05 09:53:12 +01:00

118 lines
4.9 KiB
VB.net

Imports System.IO
Imports System.Net.Mail
Imports System.Reflection
Imports System.Runtime.CompilerServices
Imports System.Text
Imports EgtBEAMWALL.Core
Imports EgtUILib
Imports MigraDoc.DocumentObjectModel
Imports MigraDoc.Rendering
Module Configuration
''' <summary>
''' tolgo eventuale indicazione solido rimasta da pezzo precedente
''' </summary>
''' <param name="nPartId">Id pezzo</param>
''' <param name="bShowSolid">booleano visualizzazione solido</param>
Friend Sub DeselectSolid(Optional nPartId As Integer = 0, Optional bShowSolid As Boolean = False)
If Map.refShowBeamPanelVM.ShowSolid_IsChecked Then
' tolgo eventuale indicazione solido rimasta da pezzo precedente
Map.refShowBeamPanelVM.SetShowSolid(False)
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(nPartId, False, False)
End If
End Sub
Public Sub CreatePrintPDF(ActivePage As Integer, bPreview As Boolean)
LoadingWndHelper.OpenLoadingWnd(ActiveIds.CREATINGPDF, 1, "Creating PDF", "", 100)
Try
' creo documento MigraDoc
Dim document As Document = PDFHelper.CreateStatReport(ActivePage, bPreview)
#If DEBUG Then
Dim documentPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\MigraDoc.mdddl"
MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToFile(document, documentPath)
#End If
' salvo il documento
Dim sFileName As String = ""
If ActivePage = Pages.VIEW AndAlso Not bPreview Then
sFileName = ProjectManagerVM.CurrProd.sProdDirPath & "\" & "Statistics.pdf"
ElseIf ActivePage = Pages.VIEW AndAlso bPreview Then
sFileName = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf" ' Se la pagina e' 0 e' bPreview e' True creo PDF Visualization
ElseIf ActivePage = Pages.MACHINING AndAlso Not bPreview Then
sFileName = ProjectManagerVM.CurrProd.sProdDirPath & "\" & ProjectManagerVM.CurrProd.sProdId & " - " & "Statistics.pdf"
ElseIf ActivePage = Pages.MACHINING AndAlso bPreview Then ' Se la pagina e' 1 e' bPreview e' True creo PDF Optimizer
sFileName = Map.refMainWindowVM.MainWindowM.sTempDir & "\Statistics.pdf"
PrevSelect()
End If
Dim renderer As New PdfDocumentRenderer() With {
.Document = document}
renderer.RenderDocument()
renderer.PdfDocument.Save(sFileName)
If Not bPreview Then Process.Start(sFileName)
Catch ex As Exception
EgtOutLog("Error genereting pdf: " & ex.ToString())
Finally
LoadingWndHelper.CloseLoadingWnd(ActiveIds.CREATINGPDF)
End Try
End Sub
Private Sub PrevSelect()
' ripristino selezione precedente
Dim nCurrMachGroupId As Integer = EgtGetCurrMachGroup()
If Not IsNothing(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup) AndAlso nCurrMachGroupId <> Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id Then
EgtSetCurrMachGroup(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id)
End If
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
EgtZoom(ZM.ALL, True)
End Sub
Public Sub SaveEml(message As MailMessage, filename As String)
Dim boundary As String = "====BOUNDARY_" & Guid.NewGuid().ToString() & "===="
Dim sb As New StringBuilder()
' Intestazioni principali
sb.AppendLine("To: " & String.Join(";", message.To.Select(Function(t) t.Address)))
If message.CC.Count > 0 Then
sb.AppendLine("Cc: " & String.Join(";", message.CC.Select(Function(t) t.Address)))
End If
sb.AppendLine("Subject: " & message.Subject)
sb.AppendLine("X-Unsent: 1")
sb.AppendLine("MIME-Version: 1.0")
sb.AppendLine("Content-Type: multipart/mixed; boundary=""" & boundary & """")
sb.AppendLine()
' Corpo HTML
sb.AppendLine("--" & boundary)
sb.AppendLine("Content-Type: text/html; charset=utf-8")
sb.AppendLine("Content-Transfer-Encoding: quoted-printable")
sb.AppendLine()
sb.AppendLine(message.Body)
sb.AppendLine()
' Allegati
For Each att As Attachment In message.Attachments
Dim ms As New MemoryStream()
att.ContentStream.Position = 0
att.ContentStream.CopyTo(ms)
Dim bytes = ms.ToArray()
Dim base64 = Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks)
sb.AppendLine("--" & boundary)
sb.AppendLine("Content-Type: " & att.ContentType.MediaType & "; name=""" & att.Name & """")
sb.AppendLine("Content-Disposition: attachment; filename=""" & att.Name & """")
sb.AppendLine("Content-Transfer-Encoding: base64")
sb.AppendLine()
sb.AppendLine(base64)
sb.AppendLine()
Next
' Fine MIME
sb.AppendLine("--" & boundary & "--")
' Salvataggio file
File.WriteAllText(filename, sb.ToString(), Encoding.UTF8)
End Sub
End Module