Beispiel #1
0
        public EUEmailUploadFile(string filePath, Microsoft.Office.Interop.Outlook.MailItem mailItem, EUFieldInformations fieldInformations, bool isListItemAndAttachment, SaveFormatOverride saveFormatOverride)  // JOEL JEFFERY 20110710 - added safeFormatOverride
        {
            FilePath = filePath;
            MetaData = new EUEmailMetaData(mailItem);
            // JOEL JEFFERY 20110711 -- mailItem == null? surely not?
            if (mailItem == null)
            {
                //Subject = mailItem.Subject;
                //EntryID = mailItem.EntryID;
                //Body = mailItem.Body;
            }
            else
            {
                // JOEL JEFFERY 20110711 -- moved here
                Subject = mailItem.Subject;
                EntryID = mailItem.EntryID;
                Body    = mailItem.Body;
                SentOn  = mailItem.SentOn;
                IsEmail = true;
            }
            //MailItem = mailItem;
            UniqueID                = Guid.NewGuid();
            FieldInformations       = fieldInformations;
            IsListItemAndAttachment = isListItemAndAttachment;

            // JOEL JEFFERY 20110710
            SaveFormatOverride = saveFormatOverride;
        }
Beispiel #2
0
        /// <summary>
        /// Copies or moves the email to folder.
        /// </summary>
        /// <param name="format">The format.</param>
        private void CopyOrMoveEmailToFolder(SaveFormatOverride format) // JOEL JEFFERY 20110708 added SaveFormatOverride format
        {
            if (DragDropTargetNode == null)
            {
                return;
            }

            EUFolder dragedFolder = DragDropTargetNode.Tag as EUFolder;

            if (dragedFolder == null)
            {
                return;
            }

            SharePointListViewControl sharePointListViewControl = GetCurrentSharePointExplorerPane().sharePointListViewControl;

            if (sharePointListViewControl.SelectedFolder == null || sharePointListViewControl.SelectedFolder.UniqueIdentifier != dragedFolder.UniqueIdentifier || sharePointListViewControl.SelectedFolder.Title != dragedFolder.Title)
            {
                sharePointListViewControl = null;
            }

            emailItems = new List <MailItem>();

            if (DragDropArgs.Data.GetDataPresent("RenPrivateSourceFolder") == false) // if it's not a folder???
            {
                // JON SILVER SAYS... I've never been able to get this bit to fire... therefore under exactly what circumstances would e.Data.GetDataPresent("RenPrivateSourceFolder") == false ??
                emailItems.Add(Application.ActiveExplorer().Selection[1] as Outlook.MailItem);
            }
            else
            {
                // JON SILVER SAYS... we always seem to end up here regardless of what's dropped
                for (int i = 0; i < Application.ActiveExplorer().Selection.Count; i++)
                {
                    Outlook.MailItem item = Application.ActiveExplorer().Selection[i + 1] as Outlook.MailItem;
                    emailItems.Add(item);
                }
            }

            bool isListItemAndAttachmentMode      = false;
            EUFieldInformations fieldInformations = null;
            EUFieldCollection   fields            = null;

            if (dragedFolder as EUFolder != null && ((EUFolder)dragedFolder).IsDocumentLibrary == false)
            {
                if (((EUFolder)dragedFolder).EnableAttachments == false)
                {
                    MessageBox.Show("In order to upload email, you need to enable attachment feature in this list.");
                    return;
                }
                isListItemAndAttachmentMode = true;
            }

            List <EUEmailUploadFile> emailUploadFiles = CommonManager.GetEmailUploadFiles(emailItems, DragDropArgs, isListItemAndAttachmentMode, format);

            // JON SILVER JUNE 2011
            if (!addedEventHandler)
            {
                EUEmailManager.UploadFailed    += new EventHandler(SharePointOutlookConnector_UploadFailed);
                EUEmailManager.UploadSucceeded += new EventHandler(SharePointOutlookConnector_UploadSucceeded);
                addedEventHandler = true;
            }

            // JOEL JEFFERY 20110712
            try
            {
                // JON SILVER JUNE 2011
                EUEmailManager.UploadEmail(sharePointListViewControl, dragedFolder, DragDropArgs, emailUploadFiles, isListItemAndAttachmentMode);
            }
            catch (System.Exception ex)
            {
                if (UploadFailed != null)
                {
                    UploadFailed(this, new EventArgs());
                }
                throw ex;
            }
        }
Beispiel #3
0
        public static List <EUEmailUploadFile> GetEmailUploadFiles(List <Microsoft.Office.Interop.Outlook.MailItem> emailItems, DragEventArgs e, bool isListItemAndAttachmentMode, SaveFormatOverride saveFormatOverride) // JOEL JEFFERY 20110708 added SaveFormatOverride format
        {
            List <EUEmailUploadFile> emailUploadFiles = new List <EUEmailUploadFile>();
            string sourceFolder = EUSettingsManager.GetInstance().CreateATempFolder();

            if (e.Data.GetDataPresent("RenPrivateSourceFolder") == false)
            {
                MemoryStream memoryStream = (MemoryStream)e.Data.GetData("FileGroupDescriptor");
                memoryStream.Seek(76, SeekOrigin.Begin);

                byte[] fileName1 = new byte[256];
                memoryStream.Read(fileName1, 0, 256);

                System.Text.Encoding encoding = System.Text.Encoding.ASCII;
                string fileName = encoding.GetString(fileName1);
                fileName = fileName.TrimEnd(new char[] { '\0' });
                string extensionName            = String.Empty;
                string filenameWithoutExtension = String.Empty;
                CommonManager.GetFileNameAndExtension(fileName, out filenameWithoutExtension, out extensionName);
                string filePath = SharePointManager.GetUnuqieFileName(sourceFolder, filenameWithoutExtension, extensionName, out fileName);
                memoryStream = (MemoryStream)e.Data.GetData("FileContents");
                FileStream fs = new FileStream(filePath, FileMode.Create);
                memoryStream.WriteTo(fs);
                fs.Close();
                emailUploadFiles.Add(new EUEmailUploadFile(filePath, emailItems[0], null, isListItemAndAttachmentMode));
            }
            else
            {
                for (int i = 0; i < emailItems.Count; i++)
                {
                    Microsoft.Office.Interop.Outlook.MailItem item = emailItems[i] as Microsoft.Office.Interop.Outlook.MailItem;
                    if (item != null)
                    {
                        string subject = (item.Subject == null ? "Email Message" : item.Subject);
                        //if we are to upload the email as a .msg
                        if (saveFormatOverride == SaveFormatOverride.Email || (saveFormatOverride == SaveFormatOverride.None && EUSettingsManager.GetInstance().Settings.SaveAsWord == false && isListItemAndAttachmentMode == false)) // JOEL JEFFERY 20110708 added format == SaveFormatOverride check
                        {
                            string fileName = subject + ".msg";
                            string filePath = SharePointManager.GetUnuqieFileName(sourceFolder, item.Subject, "msg", out fileName);
                            item.SaveAs(filePath, OlSaveAsType.olMSG);
                            emailUploadFiles.Add(new EUEmailUploadFile(filePath, item, null, isListItemAndAttachmentMode));
                        }
                        else //if we are to upload the email as .doc and attachments
                        {
                            string fileName = String.Empty;
                            string filePath = SharePointManager.GetUnuqieFileName(sourceFolder, subject, "doc", out fileName);
                            item.SaveAs(filePath, OlSaveAsType.olDoc);
                            EUEmailUploadFile emailUploadFile = new EUEmailUploadFile(filePath, item, null, isListItemAndAttachmentMode, saveFormatOverride);
                            foreach (Attachment attachment in item.Attachments)
                            {
                                string extensionName            = String.Empty;
                                string filenameWithoutExtension = String.Empty;
                                CommonManager.GetFileNameAndExtension(attachment.FileName, out filenameWithoutExtension, out extensionName);
                                filePath = SharePointManager.GetUnuqieFileName(sourceFolder, filenameWithoutExtension, extensionName, out fileName);
                                attachment.SaveAsFile(filePath);
                                emailUploadFile.Attachments.Add(new EUEmailUploadFile(filePath, item, null, isListItemAndAttachmentMode, saveFormatOverride));
                            }
                            emailUploadFiles.Add(emailUploadFile);
                        }
                    }
                }
            }
            return(emailUploadFiles);
        }