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; }
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); }
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; } }
/// <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); }
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); }