Files
Nuvolar/Nuvolar.Module/BusinessObjects/Support/Answer/AnswerVC.vb
T
ivanszabo 9cca882b34 Átállás 17.2.3-ra
Related Work Items: #123
2017-12-02 16:09:26 +01:00

142 lines
7.1 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.ExpressApp.CloneObject
Imports DevExpress.Data.Filtering
Imports System.Net.Mail
Imports DevExpress.Persistent.BaseImpl
Imports System.Reflection
Public Class AnswerVC
Inherits DevExpress.ExpressApp.ViewController
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
If View.Id = "Answer_DetailView" Then
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _Answer As Answer
Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of ModificationsController).SaveAction.Active.SetItemValue("", False)
Frame.GetController(Of ModificationsController).SaveAndCloseAction.Active.SetItemValue("", False)
Frame.GetController(Of ModificationsController).SaveAndNewAction.Active.SetItemValue("", False)
If SecuritySystem.CurrentUserName <> "ivan.szabo" Then Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False)
_Answer = TryCast(View.SelectedObjects(0), Answer)
If _ocur.Session.IsNewObject(_Answer) Then
Frame.GetController(Of AnswerVC).aSaveAnswer.Active.SetItemValue("", True)
Else
Frame.GetController(Of AnswerVC).aSaveAnswer.Active.SetItemValue("", False)
End If
If View.Id = "Answer_ListView" Then
Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False)
If SecuritySystem.CurrentUserName <> "ivan.szabo" Then Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False)
End If
End If
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
If View.Id = "Answer_DetailView" Then
Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", True)
Frame.GetController(Of ModificationsController).SaveAction.Active.SetItemValue("", True)
Frame.GetController(Of ModificationsController).SaveAndCloseAction.Active.SetItemValue("", True)
Frame.GetController(Of ModificationsController).SaveAndNewAction.Active.SetItemValue("", True)
Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True)
End If
End Sub
Private Sub aSaveAnswer_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aSaveAnswer.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _Answer As Answer = TryCast(View.SelectedObjects(0), Answer)
Dim _Events As Events
If _Answer IsNot Nothing Then
_Answer.Question.QuestionStatus = _Answer.QuestionStatus
_Answer.Question.IssueType = _Answer.IssueType
_Answer.Question.Save()
_Answer.Save()
_ocur.CommitChanges()
_Events = _onew.CreateObject(Of Events)()
_Events.Question = _onew.GetObject(_Answer.Question)
_Events.QuestionStatus = _Answer.QuestionStatus
_Events.Description = _Answer.Description
If _Answer.Attachment IsNot Nothing Then _Events.Attachment = _onew.GetObject(_Answer.Attachment)
_Events.Save()
_Events.EventDirection = eEventDirection.eOut
_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(_Answer.Question.UserCreated.Email)
_MailMessage.Subject = _Answer.Question.DocumentNumber + " számú bejelentésre válasz"
_MailMessage.IsBodyHtml = True
Dim _EmailBody As String = _WebParameters.HTMLMailTemplate_QuestionStatusUpdate.HTMLBody
_EmailBody = String.Format(_EmailBody, _Answer.Question.UserCreated.FullName, _Answer.Question.DocumentNumber, DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Enums\Nuvolar.Module.eQuestionStatus", _Answer.Question.QuestionStatus.ToString) + _
vbNewLine, TryCast(SecuritySystem.CurrentUser, User).FullName)
_EmailBody = _EmailBody + vbNewLine + CreateHTMLEventsMail(_Answer.Question, _ocur.Session)
_MailMessage.Body = _EmailBody
_MailMessage.Attachments.Clear()
If Not String.IsNullOrEmpty(GLOBAL_ApplicationStartupPath_Mail) Then
_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)
End If
_SmtpClient.Port = _WebParameters.SMTPPort
_SmtpClient.Credentials = New System.Net.NetworkCredential(_WebParameters.SMTPUserName, _WebParameters.SMTPPassword)
_SmtpClient.EnableSsl = _WebParameters.EnableSsl
_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(_Answer.Question))
View.Close()
End If
End Sub
End Class