Exemple #1
0
 public EUUploadItem(EUFolder folder, string destinationFolderUrl, EUEmailUploadFile emailUploadFile, List <EUField> fields, EUFieldInformations fieldInformations, SharePointListViewControl sharePointListViewControl)
 {
     EmailUploadFile      = emailUploadFile;
     DestinationFolderUrl = destinationFolderUrl;
     FieldInformations    = fieldInformations;
     Folder = folder;
     Fields = fields;
     SharePointListViewControl = sharePointListViewControl;
 }
Exemple #2
0
        private void InsertEmailUploadFile(EUEmailUploadFile emailUploadFile)
        {
            string groupID = String.Empty;

            if (emailUploadFile.IsEmail == false)
            {
                groupID = new FileInfo(emailUploadFile.FilePath).Name;
            }
            else
            {
                groupID = emailUploadFile.EntryID;
            }

            ListViewGroup listViewGroup = EmailsListView.Groups[groupID];
            FileInfo      fileInfo      = new FileInfo(emailUploadFile.FilePath);
            ListViewItem  listViewItem  = new ListViewItem(listViewGroup);

            listViewItem.Checked = true;
            listViewItem.Tag     = emailUploadFile.MetaData;
            listViewItem.Text    = fileInfo.Name;
            listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, fileInfo.Name));
            EmailsListView.Items.Add(listViewItem);
        }
Exemple #3
0
        public static void UploadEmail(SharePointListViewControl listviewControl, ISPCFolder dragedFolder, DragEventArgs e, List <EUEmailUploadFile> emailUploadFiles, bool isListItemAndAttachmentMode)
        {
            try
            {
                EUFieldInformations fieldInformations = null;
                EUFieldCollection   fields            = null;

                UploadProgressForm uploadProgressForm = new UploadProgressForm();
                if (EUSettingsManager.GetInstance().Settings == null)
                {
                    MessageBox.Show("You need to configure settings first.");
                    SettingsForm settingsControl = new SettingsForm();
                    settingsControl.ShowDialog();
                    return;
                }

                if (dragedFolder as EUFolder != null)
                {
                    EUFolder             dragedSPFolder = dragedFolder as EUFolder;
                    List <EUContentType> contentTypes   = SharePointManager.GetContentTypes(dragedSPFolder.SiteSetting, dragedSPFolder.WebUrl, dragedSPFolder.ListName);
                    fields = SharePointManager.GetFields(dragedSPFolder.SiteSetting, dragedSPFolder.WebUrl, dragedSPFolder.ListName);
                    ListItemEditForm listItemEditForm = new ListItemEditForm();
                    listItemEditForm.InitializeForm(dragedSPFolder, null);
                    listItemEditForm.ShowDialog();

                    if (listItemEditForm.DialogResult != DialogResult.OK)
                    {
                        return;
                    }
                    foreach (EUEmailUploadFile emailUploadFile in emailUploadFiles)
                    {
                        emailUploadFile.FieldInformations = listItemEditForm.FieldInformations;
                    }
                }

                string sourceFolder = EUSettingsManager.GetInstance().CreateATempFolder();

                if (EUSettingsManager.GetInstance().Settings.UploadAutomatically == true || dragedFolder as FSFolder != null || dragedFolder as GFolder != null)
                {
                    if (listviewControl != null)
                    {
                        for (int i = 0; i < emailUploadFiles.Count; i++)
                        {
                            EUEmailUploadFile emailUploadFile = emailUploadFiles[i];
                            listviewControl.LibraryContentDataGridView.Rows.Insert(i, 1);
                            listviewControl.LibraryContentDataGridView.Rows[i].Tag = emailUploadFile.UniqueID.ToString();
                            if (dragedFolder as EUFolder != null)
                            {
                                listviewControl.LibraryContentDataGridView.Rows[i].Cells["ExtensionImageColumn"].Value = Sobiens.Office.SharePointOutlookConnector.Properties.Resources.ajax_loader;
                            }
                            string title = emailUploadFile.FilePath.Split('\\')[emailUploadFile.FilePath.Split('\\').Length - 1];
                            listviewControl.LibraryContentDataGridView.Rows[i].Cells["TitleColumn"].Value = title;
                        }
                    }
                    // JOEL JEFFERY 20110712 Hook up the UploadFailed event
                    // JON SILVER JULY 2011 Hook up the UploadSucceeded event
                    if (!addedEventHandler)
                    {
                        OutlookConnector.GetConnector(dragedFolder.SiteSetting).UploadFailed    += new EventHandler(EUEmailManager_UploadFailed);
                        OutlookConnector.GetConnector(dragedFolder.SiteSetting).UploadSucceeded += new EventHandler(EUEmailManager_UploadSucceeded);
                        addedEventHandler = true;
                    }

                    OutlookConnector.GetConnector(dragedFolder.SiteSetting).UploadFiles(dragedFolder, emailUploadFiles, fields, fieldInformations, listviewControl);
                }
                else
                {
                    uploadProgressForm.Initialize(dragedFolder, sourceFolder, emailUploadFiles, isListItemAndAttachmentMode, fieldInformations);
                    uploadProgressForm.ShowDialog();
                }
            }
            catch (System.Exception ex)
            {
                string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                LogManager.LogAndShowException(methodName, ex);
                throw ex;
            }
        }
Exemple #4
0
        /// <summary>
        /// Ensures the folder exists.
        /// </summary>
        /// <param name="folder">The folder.</param>
        /// <param name="destinationFolderUrl">The destination folder URL.</param>
        /// <param name="emailUploadFile">The email upload file.</param>
        /// <param name="fields">The fields.</param>
        /// <param name="fieldInformations">The field informations.</param>
        /// <param name="sharePointListViewControl">The share point list view control.</param>
        /// <returns>The url of the new folder.</returns>
        private string ensureFolderExists(EUFolder folder, string destinationFolderUrl, EUEmailUploadFile emailUploadFile, List <EUField> fields, EUFieldInformations fieldInformations, SharePointListViewControl sharePointListViewControl)
        {
            string newFolderName     = SharePointManager.MakeFileNameSafe(emailUploadFile.Subject + (emailUploadFile.SentOn.HasValue ? emailUploadFile.SentOn.Value.ToString(" yyyyddMM") : ""));
            string newDestinationUrl = destinationFolderUrl + "/" + newFolderName;

            if (!SharePointManager.CheckFolderExists(folder.SiteSetting, newDestinationUrl, folder.ListName, folder.FolderPath, newFolderName))
            {
                SharePointManager.CreateListFolder(folder.SiteSetting, folder.FolderPath, folder.WebUrl, folder.ListName, newFolderName);
            }
            // JOEL JEFFERY 20110712 - what the hell was I thinking?
            //folder.FolderPath = folder.FolderPath += "/" + newFolderName;
            return(newDestinationUrl);
        }
Exemple #5
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);
        }