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 Microsoft.Office.Interop Imports DevExpress.Persistent.Validation Imports DevExpress.Xpo Imports System.IO Imports DevExpress.Persistent.BaseImpl Imports Microsoft.Office.Interop.Outlook Imports DevExpress.ExpressApp.SystemModule Imports DevExpress.ExpressApp.CloneObject Imports DevExpress.Data.Filtering Imports DevExpress.ExpressApp.Editors Imports System.Windows.Forms Imports DevExpress.ExpressApp.Utils Public Class OutlookEmailVC Inherits DevExpress.ExpressApp.ViewController Dim _WaitFormClass As New WaitFormClass Protected selection As ArrayList Protected noselect As Boolean = False Public Sub New() MyBase.New() InitializeComponent() RegisterActions(components) selection = New ArrayList() End Sub Protected Overrides Sub OnActivated() MyBase.OnActivated() Frame.GetController(Of OutlookEmailVC).aEmailIn_To_CRMEstateLeads.Active.SetItemValue("", False) If View IsNot Nothing Then If View.Id = "OutlookEMailIn_ListView" Then Dim _OutlookEmailListView As DevExpress.ExpressApp.ListView = TryCast(View, DevExpress.ExpressApp.ListView) Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _CurrentUser As User = _ocur.Session.GetObjectByKey(Of User)(_ocur.Session.GetKeyValue(SecuritySystem.CurrentUser)) _OutlookEmailListView.CollectionSource.Criteria.Add("Criteria1", CriteriaOperator.Parse("ReceiverEmailAdress=?", _CurrentUser.Email)) End If End If Frame.GetController(Of OutlookEmailVC).aAttachFile.Active.SetItemValue("", False) Frame.GetController(Of OutlookEmailVC).aViewAttachedFile.Active.SetItemValue("", False) If View.Id = "OutlookEMailIn_ListView" Then Frame.GetController(Of NewObjectViewController)()?.Active.SetItemValue("", False) 'Frame.GetController(Of DeleteObjectsViewController)()?.Active.SetItemValue("", False) Frame.GetController(Of ObjectViewController)()?.Active.SetItemValue("", False) AddHandler View.SelectionChanged, AddressOf view_SelectionChanged End If If View.Id = "OutlookEMailIn_DetailView" Then Frame.GetController(Of NewObjectViewController)()?.Active.SetItemValue("", False) Frame.GetController(Of DeleteObjectsViewController)()?.Active.SetItemValue("", False) Frame.GetController(Of ObjectViewController)()?.Active.SetItemValue("", False) Frame.GetController(Of ModificationsController)()?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)()?.Active.SetItemValue("", False) End If If View.Id = "OutlookEMail_OutlookEMailAttachments_ListView" Then Frame.GetController(Of LinkUnlinkController)()?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)()?.Active.SetItemValue("", False) Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False) End If If View.Id = "OutlookEMail_DetailView" Then Dim _OutlookEMail As OutlookEMail = TryCast(View.SelectedObjects(0), OutlookEMail) Dim _OutlookEMailIn As OutlookEMailIn = TryCast(View.SelectedObjects(0), OutlookEMailIn) If _OutlookEMail IsNot Nothing Then If _OutlookEMail.EntryID <> "" Then Frame.GetController(Of OutlookEmailVC)().aSendOutlookEmail.Active.SetItemValue("", False) End If Else If _OutlookEMailIn.EntryID <> "" Then Frame.GetController(Of OutlookEmailVC)().aSendOutlookEmail.Active.SetItemValue("", False) End If End If End If If View.Id = "OutlookEMail_OutlookEMailAttachments_ListView" Or _ View.Id = "OutlookEMailIn_OutlookEMailAttachments_ListView" Then Frame.GetController(Of NewObjectViewController)()?.Active.SetItemValue("", False) Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", False) Frame.GetController(Of OutlookEmailVC).aAttachFile.Active.SetItemValue("", True) Frame.GetController(Of OutlookEmailVC).aViewAttachedFile.Active.SetItemValue("", True) End If End Sub Protected Overrides Sub OnDeactivated() MyBase.OnDeactivated() If View.Id = "OutlookEMailIn_ListView" Then Frame.GetController(Of NewObjectViewController)()?.Active.SetItemValue("", True) Frame.GetController(Of DeleteObjectsViewController)()?.Active.SetItemValue("", True) Frame.GetController(Of ObjectViewController)()?.Active.SetItemValue("", True) RemoveHandler View.SelectionChanged, AddressOf view_SelectionChanged End If If View.Id = "OutlookEMail_OutlookEMailAttachments_ListView" Then Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True) Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True) Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True) End If If View.Id = "OutlookEMail_DetailView" Then Dim _OutlookEMail As OutlookEMail = TryCast(View.SelectedObjects(0), OutlookEMail) Dim _OutlookEMailIn As OutlookEMailIn = TryCast(View.SelectedObjects(0), OutlookEMailIn) If _OutlookEMail IsNot Nothing Then If _OutlookEMail.EntryID <> "" Then Frame.GetController(Of OutlookEmailVC)().aSendOutlookEmail.Active.SetItemValue("", False) End If Else If _OutlookEMailIn.EntryID <> "" Then Frame.GetController(Of OutlookEmailVC)().aSendOutlookEmail.Active.SetItemValue("", False) End If End If End If If View.Id = "OutlookEMail_OutlookEMailAttachments_ListView" Or _ View.Id = "OutlookEMailIn_OutlookEMailAttachments_ListView" Then Frame.GetController(Of NewObjectViewController)()?.Active.SetItemValue("", True) Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", True) End If End Sub Protected Overrides Sub OnViewControlsCreated() MyBase.OnViewControlsCreated() If View.Id = "OutlookEMailIn_DetailView" Then Dim _OutlookEMailIn As OutlookEMailIn = View.SelectedObjects(0) For Each _OutlookEMailAttachments As OutlookEMailAttachments In _OutlookEMailIn.OutlookEMailAttachments If _OutlookEMailIn.EmailBody.Contains(_OutlookEMailAttachments.DocumentFileData.File.FileName) Then Dim _ActCIDText As String = "cid:" Dim _GenString As String = _OutlookEMailIn.EmailBody.Substring(_OutlookEMailIn.EmailBody.IndexOf(_OutlookEMailAttachments.DocumentFileData.File.FileName)) _GenString = _GenString.Remove(_GenString.IndexOf(Chr(34)), _GenString.Length - _GenString.IndexOf(Chr(34))) _ActCIDText += _GenString Dim _fs As New FileStream(Path.GetTempPath() + _OutlookEMailAttachments.DocumentFileData.File.FileName, FileMode.Create) _OutlookEMailAttachments.DocumentFileData.File.SaveToStream(_fs) _fs.Close() _OutlookEMailIn.EmailBody = _OutlookEMailIn.EmailBody.Replace(_ActCIDText, Path.GetTempPath() + _OutlookEMailAttachments.DocumentFileData.File.FileName) End If Next End If End Sub Private Sub aSendOutlookEmail_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aSendOutlookEmail.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _OutlookEMail As OutlookEMail = TryCast(View.SelectedObjects(0), OutlookEMail) _OutlookEMail.SendMail(_OutlookEMail, _ocur, True) Dim _CRM_Leads As CRM_Leads = _OutlookEMail.CRM_Leads Dim _CRM_Opportunities As CRM_Opportunities = _OutlookEMail.CRM_Opportunities Dim _CRMEstate_Leads As CRMEstate_Leads = _OutlookEMail.CRMEstate_Leads '--CRM_Leads; CRM_Opportunities ==>CRM_Leads_Activity-be If _CRM_Leads IsNot Nothing Then Dim _CRM_Leads_Activity As CRM_Leads_Activity = _ocur.CreateObject(Of CRM_Leads_Activity)() _CRM_Leads_Activity.CRM_Leads = _CRM_Leads _CRM_Leads_Activity.Subject = _OutlookEMail.Subject _CRM_Leads_Activity.Email_Oid = _OutlookEMail.Oid.ToString() _CRM_Leads_Activity.EventType = eEventType.eEmailOut If _CRM_Opportunities IsNot Nothing Then _CRM_Leads_Activity.CRM_Opportunities = _CRM_Opportunities End If End If If _CRMEstate_Leads IsNot Nothing Then Dim _CRMEstate_Leads_Activity As CRMEstate_Leads_Activity = _ocur.CreateObject(Of CRMEstate_Leads_Activity)() _CRMEstate_Leads_Activity.CRMEstate_Leads = _CRMEstate_Leads _CRMEstate_Leads_Activity.Email_Oid = _OutlookEMail.Oid.ToString() _CRMEstate_Leads_Activity.Subject = _OutlookEMail.Subject _CRMEstate_Leads_Activity.EventType = eEventType.eEmailOut _CRMEstate_Leads_Activity.HRPerson = _CRMEstate_Leads.HRPerson End If _ocur.CommitChanges() View.Close(False) End Sub Private Sub aRecieveEmails_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aRecieveEmails.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _OutlookApp As New Outlook.Application() Dim _OutlookNameSpace As Outlook.NameSpace Dim _FolderMail As Outlook.MAPIFolder Dim _Mail As Outlook.MailItem Dim _OutlookEMailIn As OutlookEMailIn Dim _GO As Boolean = False Dim _CollectionOfEmailIn As XPCollection = _ocur.CreateCollection(GetType(OutlookEMailIn)) Dim _Mail_New As OutlookEMailIn Dim _FilePath As String Dim _fs As FileStream Dim i As Long = 0 Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _FDObject As Object Dim _CurrentUser As User = _ocur.Session.GetObjectByKey(Of User)(_ocur.Session.GetKeyValue(SecuritySystem.CurrentUser)) Dim _HRPerson As HRPerson = _ocur.FindObject(Of HRPerson)(CriteriaOperator.Parse("User=?", _CurrentUser)) If _HRPerson Is Nothing Then Throw New System.Exception("Nincs a felhasználó a személyzeti törzsben !") Exit Sub End If If _CurrentUser.Email <> "" Then _OutlookNameSpace = _OutlookApp.GetNamespace("MAPI") _OutlookNameSpace.Logon(, , False, True) '_FolderMail = _OutlookNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) _FolderMail = _OutlookNameSpace.GetFolderFromID(_HRPerson.DefaultOutlookFolderEntryID) If _FolderMail Is Nothing Then Throw New System.Exception("Nem találom a megadott outlook könyvtárat ! ") Exit Sub End If _WaitFormClass.Initwork(1, 1, _FolderMail.Items.Count) For Each _FDObject In _FolderMail.Items _Mail = TryCast(_FDObject, MailItem) If _Mail IsNot Nothing Then _GO = False _WaitFormClass.DoWork() i += 1 For Each _OutlookEMailIn In _CollectionOfEmailIn If _Mail.EntryID = _OutlookEMailIn.EntryID Then _GO = True Exit For End If Next If _GO = False Then _Mail_New = New OutlookEMailIn(_uow) 'If _Mail.SenderEmailType = "EX" Then ' _Mail_New.SenderEmailAddress = GetExchangeSenderAddress(_Mail, _OutlookNameSpace) 'Else ' _Mail_New.SenderEmailAddress = _Mail.SenderEmailAddress 'End If _Mail_New.SenderEmailAddress = GetSmtpAddress(_Mail) _Mail_New.ReceivedTime = _Mail.ReceivedTime _Mail_New.SenderName = _Mail.SenderName _Mail_New.EmailSubject = _Mail.Subject _Mail_New.EmailBody = _Mail.HTMLBody _Mail_New.EntryID = _Mail.EntryID _Mail_New.ReceiverEmailAdress = _CurrentUser.Email If _Mail.Attachments.Count > 0 Then For Each _Attachment As Outlook.Attachment In _Mail.Attachments _FilePath = Path.GetTempPath & _Attachment.FileName _Attachment.SaveAsFile(_FilePath) Dim _EmailAttachments As OutlookEMailAttachments Dim _DocumentFileData As DocumentFileData = New DocumentFileData(_uow) _fs = New FileStream(_FilePath, FileMode.Open) _DocumentFileData.File = New FileData(_uow) _DocumentFileData.File.LoadFromStream(Path.GetFileName(_Attachment.FileName), _fs) _EmailAttachments = New OutlookEMailAttachments(_uow) _EmailAttachments.DocumentFileData = _DocumentFileData _Mail_New.OutlookEMailAttachments.Add(_EmailAttachments) _fs.Close() If System.IO.File.Exists(_FilePath) Then System.IO.File.Delete(_FilePath) End If Next End If '_Mail_New.Save() If i Mod 100 Then _uow.CommitChanges() End If End If Next _uow.CommitChanges() _WaitFormClass.FinalWork() If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then Frame.GetController(Of RefreshController).RefreshAction.DoExecute() End If Else _ocur.Rollback() Throw New System.Exception("Nincs beállítva e-mail cím a bejelentkezett felhasználónak!") End If End Sub Private Function GetSmtpAddress(ByVal item As Outlook.MailItem) As String Dim sAddress As String Dim recip As Outlook.Recipient Dim exUser As Outlook.ExchangeUser Dim oOutlook As Outlook.Application Dim oNS As Outlook.NameSpace On Error Resume Next oOutlook = New Outlook.Application oNS = oOutlook.GetNamespace("MAPI") If UCase$(item.SenderEmailType) = "EX" Then recip = oNS.CreateRecipient(item.SenderEmailAddress) exUser = recip.AddressEntry.GetExchangeUser() sAddress = exUser.PrimarySmtpAddress Else sAddress = item.SenderEmailAddress End If GetSmtpAddress = sAddress oNS = Nothing oOutlook = Nothing End Function Private Sub aEmailIn_To_CRMLeads_Cancel(sender As Object, e As System.EventArgs) Handles aEmailIn_To_CRMLeads.Cancel noselect = False End Sub Private Sub aEmailIn_To_CRMLeads_CustomizePopupWindowParams(sender As System.Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aEmailIn_To_CRMLeads.CustomizePopupWindowParams If View.SelectedObjects.Count > 0 Then Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace noselect = True Dim _OutlookEmailIn_To_CRMLeads As OutlookEmailIn_To_CRMLeads = _onew.CreateObject(Of OutlookEmailIn_To_CRMLeads)() Dim _Mail As Outlook.MailItem = TryCast(View.SelectedObjects(0), Outlook.MailItem) Dim _OutlookEMailIn As OutlookEMailIn = TryCast(View.SelectedObjects(0), OutlookEMailIn) _OutlookEmailIn_To_CRMLeads.EMail = _OutlookEMailIn.SenderEmailAddress e.View = Application.CreateDetailView(_onew, "OutlookEmailIn_To_CRMLeads_DetailView", False, _OutlookEmailIn_To_CRMLeads) View.Refresh() End If End Sub Private Sub aEmailIn_To_CRMLeads_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aEmailIn_To_CRMLeads.Execute Try Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _OutlookEmailIn_To_CRMLeads As OutlookEmailIn_To_CRMLeads = TryCast(e.PopupWindow.View.SelectedObjects(0), OutlookEmailIn_To_CRMLeads) Dim _OutlookEMailIn As OutlookEMailIn noselect = True Select Case _OutlookEmailIn_To_CRMLeads.EmailTo Case eEmailTo.eCRM Dim _CRM_Leads_POPUP As CRM_Leads Dim _CRM_Opportunities_POPUP As CRM_Opportunities Dim _CRM_Leads_Activity As CRM_Leads_Activity If _OutlookEmailIn_To_CRMLeads.CRM_Leads IsNot Nothing Then _CRM_Leads_POPUP = _ocur.GetObjectByKey(Of CRM_Leads)(_OutlookEmailIn_To_CRMLeads.CRM_Leads.Oid) End If If _OutlookEmailIn_To_CRMLeads.CRM_Opportunities IsNot Nothing Then _CRM_Opportunities_POPUP = _ocur.GetObjectByKey(Of CRM_Opportunities)(_OutlookEmailIn_To_CRMLeads.CRM_Opportunities.Oid) If _CRM_Leads_POPUP Is Nothing Then _CRM_Leads_POPUP = _CRM_Opportunities_POPUP.CRM_Leads End If End If _WaitFormClass.Initwork(1, 1, selection.Count) For Each _OutlookEMailIn In selection _WaitFormClass.DoWork() _OutlookEMailIn.IsReaded = True _OutlookEMailIn.Qualified = True If _OutlookEMailIn.SenderEmailAddress = _OutlookEmailIn_To_CRMLeads.EMail Then If _CRM_Leads_POPUP IsNot Nothing Then _CRM_Leads_Activity = _ocur.CreateObject(Of CRM_Leads_Activity)() If _CRM_Opportunities_POPUP IsNot Nothing Then _CRM_Leads_Activity.CRM_Leads = _CRM_Leads_POPUP _CRM_Leads_Activity.CRM_Opportunities = _CRM_Opportunities_POPUP _CRM_Leads_Activity.Email_Oid = _OutlookEMailIn.Oid.ToString() _CRM_Leads_Activity.Subject = _OutlookEMailIn.EmailSubject _CRM_Leads_Activity.EventType = eEventType.eEMailIn Else _CRM_Leads_Activity.CRM_Leads = _CRM_Leads_POPUP _CRM_Leads_Activity.CRM_Opportunities = Nothing _CRM_Leads_Activity.Email_Oid = _OutlookEMailIn.Oid.ToString() _CRM_Leads_Activity.Subject = _OutlookEMailIn.EmailSubject _CRM_Leads_Activity.EventType = eEventType.eEMailIn End If End If End If Next Case eEmailTo.eRegistry _WaitFormClass.Initwork(1, 1, selection.Count) Dim _OutlookApp As New Outlook.Application() Dim _OutlookNameSpace As Outlook.NameSpace _OutlookNameSpace = _OutlookApp.GetNamespace("MAPI") _OutlookNameSpace.Logon(, , False, True) For Each _OutlookEMailIn In selection _WaitFormClass.DoWork() _OutlookEMailIn.IsReaded = True _OutlookEMailIn.Qualified = True Dim _RegistryHeader As RegistryHeader = _ocur.CreateObject(Of RegistryHeader)() _RegistryHeader.RegistryType = _ocur.GetObjectByKey(Of RegistryType)(_OutlookEmailIn_To_CRMLeads.RegistryType.Oid) _RegistryHeader.DeliveryType = eDeliveryType.eMail _RegistryHeader.CustomersFrom = _ocur.GetObjectByKey(Of CustomersFrom)(_OutlookEmailIn_To_CRMLeads.CustomersFrom.Oid) Dim _Mail As Outlook.MailItem = TryCast(_OutlookNameSpace.GetItemFromID(_OutlookEMailIn.EntryID), Outlook.MailItem) _Mail.SaveAs(Path.GetTempPath() + "EmailMessage.msg") Dim _fs As FileStream _fs = New FileStream(Path.GetTempPath() + "EmailMessage.msg", FileMode.Open) _RegistryHeader.DocumentFile = New FileData(_ocur.Session) _RegistryHeader.DocumentFile.LoadFromStream("EmailMessage.msg", _fs) _fs.Close() If System.IO.File.Exists(Path.GetTempPath() + "EmailMessage.msg") Then System.IO.File.Delete(Path.GetTempPath() + "EmailMessage.msg") End If Next Case eEmailTo.eCRMEstate _WaitFormClass.Initwork(1, 1, selection.Count) For Each _OutlookEMailIn In selection _WaitFormClass.DoWork() _OutlookEMailIn.IsReaded = True _OutlookEMailIn.Qualified = True Dim _CRMEstate_Leads As CRMEstate_Leads = _ocur.GetObjectByKey(Of CRMEstate_Leads)(_OutlookEmailIn_To_CRMLeads.CRMEstate_Leads.Oid) If _CRMEstate_Leads Is Nothing Then Throw New System.Exception("Nem lett kiválasztva a felugró ablakban egyetlen ingatlan ügy sem!" + vbNewLine + "A folyamat megszakadt!") Dim _CRMEstate_Leads_Activity As CRMEstate_Leads_Activity = _ocur.CreateObject(Of CRMEstate_Leads_Activity)() _CRMEstate_Leads_Activity.EventType = eEventType.eEMailIn _CRMEstate_Leads_Activity.CRMEstate_Leads = _CRMEstate_Leads _CRMEstate_Leads_Activity.Email_Oid = _OutlookEMailIn.Oid.ToString _CRMEstate_Leads_Activity.HRPerson = _CRMEstate_Leads.HRPerson _CRMEstate_Leads_Activity.Subject = _OutlookEMailIn.EmailSubject Next End Select noselect = False _ocur.CommitChanges() Catch ex As System.Exception MsgBox(ex.Message, MsgBoxStyle.OkOnly) Finally Me._WaitFormClass.FinalWork() End Try End Sub Private Sub view_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim _OutlookEmailIn As OutlookEMailIn If View Is Nothing Then Exit Sub If noselect = False Then selection.Clear() For Each _OutlookEmailIn In View.SelectedObjects selection.Add(_OutlookEmailIn) Next End If End Sub Private Sub aViewAttachedFile_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewAttachedFile.Execute Try Dim _ListView As DevExpress.ExpressApp.ListView = TryCast(View, DevExpress.ExpressApp.ListView) Dim _OutlookEMailAttachments As OutlookEMailAttachments = TryCast(View.SelectedObjects(0), OutlookEMailAttachments) Dim _FilePath As String = Path.Combine(Path.GetTempPath(), _OutlookEMailAttachments.DocumentFileData.File.FileName) Dim _Stream As Stream = New FileStream(_FilePath, FileMode.Create) _OutlookEMailAttachments.DocumentFileData.File.SaveToStream(_Stream) _Stream.Close() Process.Start(_FilePath) Catch Throw New UserFriendlyException("Nem tudom megnyitni a file-t!") End Try End Sub Private Sub aAttachFile_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aAttachFile.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _ListView As DevExpress.ExpressApp.ListView = TryCast(View, DevExpress.ExpressApp.ListView) Dim _PropertyCollectionSource As PropertyCollectionSource = TryCast(_ListView.CollectionSource, PropertyCollectionSource) Dim _OutlookEMail As OutlookEMail = TryCast(_PropertyCollectionSource.MasterObject, OutlookEMail) Dim _MyStream As Stream = Nothing Dim _OpenFileDialog As New OpenFileDialog() _OpenFileDialog.InitialDirectory = "c:\" _OpenFileDialog.RestoreDirectory = True If _OpenFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then Try _MyStream = _OpenFileDialog.OpenFile() If (_MyStream IsNot Nothing) Then Dim _EmailAttachments As OutlookEMailAttachments Dim _DocumentFileData As DocumentFileData = _ocur.CreateObject(Of DocumentFileData)() _DocumentFileData.File = _ocur.CreateObject(Of FileData)() _DocumentFileData.File.LoadFromStream(Path.GetFileName(_OpenFileDialog.FileName), _MyStream) _EmailAttachments = _ocur.CreateObject(Of OutlookEMailAttachments)() _EmailAttachments.DocumentFileData = _DocumentFileData _OutlookEMail.OutlookEMailAttachments.Add(_ocur.GetObject(_EmailAttachments)) _OutlookEMail.Save() _ocur.CommitChanges() View.Refresh() End If Catch '--- TESZT MIATT!!! ----- MessageBox.Show("Nem tudtam csatolni a file-t!") Finally If (_MyStream IsNot Nothing) Then _MyStream.Close() End If End Try End If End Sub Private Sub aEmailIn_To_CRMEstateLeads_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aEmailIn_To_CRMEstateLeads.CustomizePopupWindowParams Try Catch ex As System.Exception MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain"))) End Try End Sub Private Sub aEmailIn_To_CRMEstateLeads_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aEmailIn_To_CRMEstateLeads.Execute Try Catch ex As System.Exception MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain"))) End Try End Sub End Class