private void ReportEmails() { OutputModel emailRecord = null; WorkAsync(new WorkAsyncInfo() { Message = "Processing...", Work = (Worker, args) => { try { CRMAttachmentDAO crmDAO = new CRMAttachmentDAO(); LocalFileSystemDAO localDAO = new LocalFileSystemDAO(); List <OutputModel> oEmailData = crmDAO.ReportMimeAttachments(Service); foreach (OutputModel email in oEmailData) { emailRecord = email; ListViewItem _ListViewItem = new ListViewItem(email.DateTimeProcessed); _ListViewItem.SubItems.Add(email.GUID.ToString()); _ListViewItem.SubItems.Add(email.FileName); _ListViewItem.SubItems.Add(email.FileSize); _ListViewItem.SubItems.Add(email.DownloadLocation); _ListViewItem.SubItems.Add(email.RegardingEntity); _ListViewItem.SubItems.Add(email.RegardingID); _ListViewItem.SubItems.Add(""); Worker.ReportProgress(0, _ListViewItem); } } catch (Exception ex) { ListViewItem _ListViewItem = new ListViewItem(emailRecord.DateTimeProcessed); _ListViewItem.SubItems.Add(emailRecord.GUID); _ListViewItem.SubItems.Add(emailRecord.FileName); _ListViewItem.SubItems.Add(emailRecord.FileSize); _ListViewItem.SubItems.Add(emailRecord.DownloadLocation); _ListViewItem.SubItems.Add(emailRecord.RegardingEntity); _ListViewItem.SubItems.Add(emailRecord.RegardingID); _ListViewItem.SubItems.Add(ex.Message); Worker.ReportProgress(0, _ListViewItem); } }, ProgressChanged = pc => { lvMainOutput.Items.Add((ListViewItem)pc.UserState); } }); }
private void ProcessEmails() { WorkAsync(new WorkAsyncInfo() { Message = "Processing...", Work = (Worker, args) => { Entity oEMailData = new Entity(); string storeAttahmentDirectory = null; try { CRMAttachmentDAO crmDAO = new CRMAttachmentDAO(); LocalFileSystemDAO localDAO = new LocalFileSystemDAO(); List <Guid> oAttachmentGuids = (rbAllAttachments.Checked) ? crmDAO.GetListOfActivityMimeAttachmentGuids(Service) : localDAO.ReadFromCSV(tbCSVLocation.Text); recordCount = oAttachmentGuids.Count(); string fileDirectory = (rbAllAttachments.Checked) ? localDAO.CreateLocalDirectory(tbCSVLocation.Text, false, false, true) : localDAO.CreateLocalDirectory(tbCSVLocation.Text, false, true, true); foreach (Guid attachment in oAttachmentGuids) { oEMailData = null; storeAttahmentDirectory = null; oEMailData = crmDAO.GetActivityMimeAttachmentData(attachment, Service); storeAttahmentDirectory = localDAO.CreateLocalDirectory(Path.Combine(fileDirectory, oEMailData.Id.ToString()), true, false, true); localDAO.CreateAttachmentFile(oEMailData["body"].ToString(), storeAttahmentDirectory, oEMailData["filename"].ToString()); ListViewItem _ListViewItem = new ListViewItem(DateTime.Now.ToString()); _ListViewItem.SubItems.Add(oEMailData["activitymimeattachmentid"].ToString()); _ListViewItem.SubItems.Add(oEMailData["filename"].ToString()); _ListViewItem.SubItems.Add(oEMailData["filesize"].ToString()); _ListViewItem.SubItems.Add(storeAttahmentDirectory); _ListViewItem.SubItems.Add(oEMailData["objecttypecode"].ToString()); _ListViewItem.SubItems.Add(((EntityReference)oEMailData["objectid"]).Id.ToString()); _ListViewItem.SubItems.Add(""); Worker.ReportProgress(0, _ListViewItem); Worker.ReportProgress(1); loopCounter++; } } catch (Exception ex) { ListViewItem _ListViewItem = new ListViewItem(DateTime.Now.ToString()); _ListViewItem.SubItems.Add(oEMailData?["activitymimeattachmentid"].ToString()); _ListViewItem.SubItems.Add(oEMailData?["filename"].ToString()); _ListViewItem.SubItems.Add(oEMailData["filesize"].ToString()); _ListViewItem.SubItems.Add(storeAttahmentDirectory); _ListViewItem.SubItems.Add(oEMailData?["objecttypecode"].ToString()); _ListViewItem.SubItems.Add((oEMailData != null) ? ((EntityReference)oEMailData["objectid"]).Id.ToString() : null); _ListViewItem.SubItems.Add(ex.Message); Worker.ReportProgress(0, _ListViewItem); } }, ProgressChanged = pc => { if (pc.ProgressPercentage == 1) { SetWorkingMessage(string.Format("Processing E-mails: {0} of {1}", loopCounter, recordCount)); } else { lvMainOutput.Items.Add((ListViewItem)pc.UserState); } } }); }