protected override void Execute() { IResource resFolder; if (!IsDataCorrect(out resFolder, _folder)) { return; } IStatusWriter statusWriter = Core.UIManager.GetStatusWriter(this, StatusPane.Network); statusWriter.ShowStatus("Synchronizing folder " + _folder.Name + "..."); OutlookSession.ProcessJobs(); try { MailSync mailSync = new MailSync(false, _dateRestriction); mailSync.AddMailResources(Folder.GetMessageList(resFolder)); mailSync.EnumerateMessageItems(_folder); mailSync.RemoveDeletedMailsFromIndex(); } finally { statusWriter.ClearStatus(); } }
protected override void Execute() { Tracer._Trace("DoEnum()"); if (Settings.IdleModeManager.CheckIdleAndSyncComplete()) { Tracer._Trace("IsSyncComplete()"); return; } Settings.IdleModeManager.SetIdleFlag(); MailSync mailSync = new MailSync(_computeCount, _indexStartDate, _idle); mailSync.PrepareMailResources(); foreach (IEMsgStore msgStore in OutlookSession.GetMsgStores()) { if (msgStore == null) { continue; } if (OutlookProcessor.IsIgnoredInfoStore(msgStore)) { continue; } string storeID = msgStore.GetBinProp(MAPIConst.PR_STORE_ENTRYID); string name = msgStore.GetStringProp(MAPIConst.PR_DISPLAY_NAME); FolderDescriptorEnumerator.Do(msgStore, storeID, name, mailSync); if (Settings.IdleModeManager.Interrupted) { if (Settings.IdleIndexing) { Settings.IdleModeManager.DropInterrupted(); OutlookSession.OutlookProcessor.QueueIdleJob(this); } break; } } if (Settings.IdleModeManager.CompletedIdle) { OutlookSession.OutlookProcessor.SetSyncComplete(); mailSync.RemoveDeletedMailsFromIndex(); } else if (!Settings.IdleModeManager.Idle) { if (mailSync.IndexStartDate == DateTime.MinValue) { OutlookSession.OutlookProcessor.SetSyncComplete(); } mailSync.RemoveDeletedMailsFromIndex(); } return; }
public static void ProcessFolder(FolderDescriptor folderDescriptor, DateTime dtRestrict) { _tracer.Trace("Synchronize folder: " + folderDescriptor.Name); IResource resStore = Folder.FindMAPIStore(folderDescriptor.FolderIDs.StoreId); if (resStore == null) { return; } DateTime date = resStore.GetDateProp(PROP.LastReceiveDate); if (date == DateTime.MinValue) { date = dtRestrict; } MailSync mailSync = new MailSync(false, date); mailSync.Refresh = true; mailSync.EnumerateMessageItems(folderDescriptor); }