Files
SDL/VERAG_PROG_ALLGEMEIN/cErrorHandler.vb
2025-04-11 12:38:56 +02:00

108 lines
4.3 KiB
VB.net

Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Net.Mail
Imports System.Windows.Forms
Public Class cErrorHandler
Public Shared Sub ERR(message As String, stack As String, functionName As String, Optional OP As String = "", Optional title As String = "", Optional mailadess As String = "error@verag.ag", Optional recieverMailAdress As String = "", Optional zusatz As String = "", Optional errCode As String = Nothing)
If OP = "" Then OP = VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL ' GLobal gesetzes Errorhandling! (Standart=SHOW)
'If Form.ActiveForm IsNot Nothing Then
' Dim bm As New Bitmap(Form.ActiveForm.Width, Form.ActiveForm.Height)
' Dim g As Graphics = Graphics.FromImage(bm)
' g.CopyFromScreen(Form.ActiveForm.Location, New Point(0, 0), New Size(Form.ActiveForm.Width, Form.ActiveForm.Height))
' bm.Save("C:\formgrab.bmp", Drawing.Imaging.ImageFormat.Bmp)
'End If
Try
Select Case OP
Case ERROR_OP.MAIL
sendERRORperMail(title & " | " & My.Application.Info.AssemblyName, message, stack, mailadess, zusatz, functionName)
Case ERROR_OP.SHOW
Dim c As New cProgramFunctions
Dim url = c.MakeScreenshot()
Dim f As New frmErrorMeldung(If(functionName <> "", "Fehler in der Funktion '" & functionName & "'" & vbNewLine & vbNewLine, "") & message & vbNewLine & zusatz, stack, title, url)
f.ShowDialog()
Case ERROR_OP.SHOW_MSGBOX
MsgBox(If(functionName <> "", "Fehler in der Funktion '" & functionName & "'" & vbNewLine & vbNewLine, "") & message & vbNewLine & stack & vbNewLine & zusatz, MsgBoxStyle.OkOnly, If(title <> "", title, "Fehler"))
End Select
VERAG_PROG_ALLGEMEIN.cERS.saveErr(OP, message, stack, errCode, functionName, recieverMailAdress, zusatz)
Catch ex As Exception
Try
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Catch ex2 As Exception
End Try
End Try
End Sub
Public Shared Sub sendERRORperMail(title, errmsg, errstack, recieverMailAdress, zusatz, functionName)
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
'myCredentials.UserName = "support@verag.ag"
'myCredentials.Password = "$up0Rt2809!"
'myCredentials.UserName = "al@verag.ag"
'myCredentials.Password = "verag#2"
myCredentials.UserName = "edv@verag.ag"
myCredentials.Password = "Ju18WA10"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
mySmtpsvr.Host = "owa.verag.ag" 'bei web.de
mySmtpsvr.Port = 25 '587 '25
mySmtpsvr.UseDefaultCredentials = False
mySmtpsvr.Credentials = myCredentials
Try
' Msg.From = New MailAddress("al@verag.ag")
Msg.From = New MailAddress("edv@verag.ag")
Msg.To.Add(recieverMailAdress)
Msg.Subject = title '"ERROR - DAKOSY Einarbeitung"
Msg.Body = "Uhrzeit: " & Now.ToShortDateString & " " & Now.ToShortTimeString
Msg.Body = "Function: " & functionName
Msg.Body &= vbNewLine
Msg.Body &= vbNewLine
Msg.Body &= "Fehlermeldung: " & errmsg
Msg.Body &= vbNewLine
Msg.Body &= vbNewLine
Msg.Body &= "Stacktrace: " & errstack
Msg.Body &= vbNewLine
If zusatz <> "" Then
Msg.Body &= "Zusatz: " & zusatz
Msg.Body &= vbNewLine
End If
Msg.Body &= errstack
mySmtpsvr.Send(Msg)
Catch ex As Exception
Try
mySmtpsvr.Host = "192.168.0.107" 'bei web.de ' 235
mySmtpsvr.Send(Msg)
Catch ex2 As Exception
' MsgBox(ex.Message & ex.StackTrace)
End Try
End Try
End Sub
End Class
Public Class ERROR_OP
Shared Property SHOW As String = "SHOW"
Shared Property SHOW_MSGBOX As String = "SHOW_MSGBOX"
Shared Property MAIL As String = "MAIL"
Shared Property TOFILE As String = "TOFILE"
Shared Property LOG As String = "LOG" 'Nur fürs Protokoll, keine Fehlermeldung
End Class