Files
Nuvolar/Nuvolar.Module/BusinessObjects/Support/Question/Reply_VC.vb
T
2017-03-08 11:21:27 +01:00

127 lines
6.2 KiB
VB.net

Imports System
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.Text
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.Persistent.Base
Imports DevExpress.ExpressApp.SystemModule
Imports DevExpress.Data.Filtering
Imports System.Net.Mail
Imports DevExpress.Persistent.BaseImpl
Imports System.Reflection
Public Class Reply_VC
Inherits DevExpress.ExpressApp.ViewController
Public Sub New()
MyBase.New()
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
Frame.GetController(Of Reply_VC).aSaveReply.Active.SetItemValue("", False)
If View.Id = "Reply_DetailView" Then
Frame.GetController(Of ModificationsController).Active.SetItemValue("", False)
Frame.GetController(Of NewObjectViewController).Active.SetItemValue("", False)
Frame.GetController(Of Reply_VC).aSaveReply.Active.SetItemValue("", True)
If SecuritySystem.CurrentUserName <> "ivan.szabo" Then Frame.GetController(Of DeleteObjectsViewController).Active.SetItemValue("", False)
End If
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
If View.Id = "Reply_DetailView" Then
Frame.GetController(Of ModificationsController).Active.SetItemValue("", True)
Frame.GetController(Of NewObjectViewController).Active.SetItemValue("", True)
Frame.GetController(Of DeleteObjectsViewController).Active.SetItemValue("", True)
Frame.GetController(Of Reply_VC)().aSaveReply.Active.SetItemValue("", False)
End If
End Sub
Protected Sub aSaveReply_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aSaveReply.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _Reply As Reply = TryCast(View.SelectedObjects(0), Reply)
Dim _Events As Events
If _Reply IsNot Nothing Then
_Reply.Question.QuestionStatus = eQuestionStatus.eActive
_Reply.Question.QuestionClosed = eQuestionClosed.eOpen
_Reply.Question.Save()
_Reply.Save()
_ocur.CommitChanges()
_Events = _onew.CreateObject(Of Events)()
_Events.Question = _onew.GetObject(_Reply.Question)
_Events.Description = _Reply.Description
If _Reply.Attachment IsNot Nothing Then _Events.Attachment = _onew.GetObject(_Reply.Attachment)
_Events.Save()
_Events.EventDirection = eEventDirection.eIn
_onew.CommitChanges()
Try
Dim _WebParameters As WebParameters = _ocur.FindObject(Of WebParameters)(CriteriaOperator.Parse("1=1"))
If _WebParameters Is Nothing Then Throw New Exception("*Nincsnek e-mail paraméterek beállítva!")
If _WebParameters.SMTPHost Is Nothing Then Throw New Exception("*Nincs SMTP server beállítva!")
If _WebParameters.SMTPUserName = "" Then Throw New Exception("*Nincs felhasználói név beállítva!")
If _WebParameters.SMTPPort = 0 Then Throw New Exception("*Nincs SMTP port beállítva!")
Dim _MailMessage As New MailMessage
Dim _Attachment As Attachment
Dim _SmtpClient As SmtpClient = New SmtpClient(_WebParameters.SMTPHost)
_MailMessage.From = New MailAddress(_WebParameters.Email_SupportAdmin)
_MailMessage.To.Add(_Reply.Question.UserCreated.Email)
_MailMessage.Subject = _Reply.Question.DocumentNumber + " számú bejelentés"
_MailMessage.IsBodyHtml = True
Dim _EmailBody As String = _WebParameters.HTMLMailTemplate_QuestionStatusUpdate.HTMLBody
_EmailBody = String.Format(_EmailBody, _Reply.Question.UserCreated.FullName, _Reply.Question.DocumentNumber, _
DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Enums\Nuvolar.Module.eQuestionStatus", _Reply.Question.QuestionStatus.ToString) + _
vbNewLine, TryCast(SecuritySystem.CurrentUser, User).FullName)
_EmailBody = _EmailBody + vbNewLine + CreateHTMLEventsMail(_Reply.Question, _ocur.Session)
_MailMessage.Body = _EmailBody
_MailMessage.Attachments.Clear()
_Attachment = New Attachment(GLOBAL_ApplicationStartupPath_Mail & "Images\iRedArrow.png")
_Attachment.ContentId = "c001"
_MailMessage.Attachments.Add(_Attachment)
_Attachment = New Attachment(GLOBAL_ApplicationStartupPath_Mail & "Images\iGreenArrow.png")
_Attachment.ContentId = "c002"
_MailMessage.Attachments.Add(_Attachment)
_SmtpClient.Port = _WebParameters.SMTPPort
_SmtpClient.Credentials = New System.Net.NetworkCredential(_WebParameters.SMTPUserName, _WebParameters.SMTPPassword)
_SmtpClient.EnableSsl = _WebParameters.EnableSsl
_SmtpClient.Send(_MailMessage)
_MailMessage.To.Clear()
_MailMessage.To.Add(_WebParameters.Email_SupportAdmin)
_MailMessage.Subject = "Új válasz érkezett"
_MailMessage.Body = String.Format("{0} felhasználó a(z) {1} kérdéshez új választ rögzített.", _Reply.Question.UserCreated.FullName, _Reply.Question.DocumentNumber)
_SmtpClient.Send(_MailMessage)
Catch ex As Exception
Dim sf As StackFrame = New StackFrame()
Dim _ErrorLog As ErrorLog = _ocur.CreateObject(Of ErrorLog)()
_ErrorLog.Description = ex.Message
_ErrorLog.SubName = TryCast(sf.GetMethod(), MethodBase).Name
_ocur.CommitChanges()
End Try
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "Question_DetailView_Info", True, _onew.GetObject(_Reply.Question))
View.Close()
End If
End Sub
End Class