예제 #1
0
        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);
                }
            });
        }
예제 #2
0
        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);
                    }
                }
            });
        }