public virtual void OnFolderMove(MAPIFullNtf ntf) { if (_mapiListener != null) { _mapiListener.OnFolderMove(ntf); } }
public void OnMailCopy(MAPIFullNtf ntf) { if (CheckArgument("OnMailCopy", ntf)) { OnMailAdd(ntf); } }
public virtual void OnMailCopy(MAPIFullNtf ntf) { if (_mapiListener != null) { _mapiListener.OnMailCopy(ntf); } }
public void OnFolderMove(MAPIFullNtf ntf) { if (CheckArgument("OnFolderMove", ntf)) { _jobStrategy.QueueJob(new DelegateMAPIFullNtf(OnFolderMoveImpl), ntf); } }
public void OnMailMove(MAPIFullNtf ntf) { if (CheckArgument("OnMailMove", ntf) && Settings.ProcessMessageMove) { _jobStrategy.QueueJob(new DelegateMAPIFullNtf(OnMailMoveImpl), ntf); } }
public MailMovedDescriptor(MAPIFullNtf ntf, string storeID) { Guard.NullArgument(ntf, "ntf"); Guard.NullArgument(storeID, "storeID"); _storeID = storeID; _ntf = ntf; }
private void OnFolderCopyImpl(MAPIFullNtf ntf) { if (CheckStorageIgnored(_storeID)) { return; } FolderAddDescriptor.Do(JobPriority.AboveNormal, ntf, _storeID); }
private void OnFolderMoveImpl(MAPIFullNtf ntf) { if (CheckStorageIgnored(_storeID)) { return; } Core.ResourceAP.QueueJob(JobPriority.AboveNormal, new FolderModifiedDescriptor(ntf, _storeID, true)); }
private bool CheckArgument(string category, MAPIFullNtf ntf) { bool bRet = CheckArgument(category, (MAPINtf)ntf); if (_bTrace) { Trace(category, "oldParentID", ntf.OldParentID); Trace(category, "oldEntryID", ntf.OldEntryID); } return(bRet); }
private void OnMailModifyImpl(MAPIFullNtf ntf) { if (CheckStorageIgnored(_storeID)) { return; } try { IEFolder folder = OutlookSession.OpenFolder(ntf.ParentID, _storeID); if (folder == null) { return; } using ( folder ) { FolderDescriptor folderDescriptor = FolderDescriptor.Get(folder); if (folderDescriptor.ContainerClass == FolderType.IMAP) { if (!ProcessMailAddNtf.ProcessIMAPMessage(folder, ntf.EntryID)) { return; } } IEMessage message = OutlookSession.OpenMessage(ntf.EntryID, _storeID); if (message == null) { return; } using ( message ) { ProcessMailModifyImpl(ntf, message, folderDescriptor); } } } catch (System.Threading.ThreadAbortException ex) { Tracer._TraceException(ex); } catch (Exception exception) { Core.ReportBackgroundException(exception); } }
private void ProcessMailModifyImpl(MAPIFullNtf ntf, IEMessage message, FolderDescriptor folderDescriptor) { string messageClass = MessageType.GetMessageClass(message); if (MessageType.InterpretAsMail(messageClass)) { string entryId = OutlookSession.GetMessageID(message); if (OutlookSession.IsMailExported(entryId)) { return; } new MailDescriptor(folderDescriptor, entryId, message, MailDescriptor.UpdateState).QueueJob(JobPriority.AboveNormal); } else if (MessageType.InterpretAsContact(messageClass)) { string realEntryId = message.GetBinProp(MAPIConst.PR_ENTRYID); if (OutlookSession.IsMailExported(realEntryId)) { return; } ContactDescriptorWrapper.Do(folderDescriptor, realEntryId, realEntryId); } else if (MessageType.InterpretAsTask(messageClass)) { _tracer.Trace("Task was modified"); string realEntryId = message.GetBinProp(MAPIConst.PR_ENTRYID); if (OutlookSession.IsMailExported(realEntryId)) { return; } TaskDescriptor.Do(JobPriority.AboveNormal, folderDescriptor, message, realEntryId); } else { ntf = ntf; // _tracer.Trace( "Unknown item of class " + messageClass + " was modified" ); } }
public override void OnMailMove(MAPIFullNtf ntf) { Console.WriteLine("OnMailMove: " + _count); Console.WriteLine("ntf.EntryID: " + ntf.EntryID); Console.WriteLine("ntf.OntryID: " + ntf.OldEntryID); IEMessage message = null; string msgId = null; string recordKey = null; switch (_count) { case 0: message = OutlookSession.OpenMessage(ntf.EntryID, _storeID); if (message == null) { return; } Console.WriteLine("Subject + " + message.GetStringProp(MAPIConst.PR_SUBJECT)); Assert.IsNotNull(message); using ( message ) { msgId = OutlookSession.GetMessageID(message); recordKey = message.GetBinProp(MAPIConst.PR_RECORD_KEY); } Console.WriteLine("Id1: " + msgId); Console.WriteLine("Id2: " + _messageID); if (msgId != _messageID) { if (recordKey == _recordKey) { _messageID = msgId; } else { return; } } Console.WriteLine("PID = " + ntf.ParentID); Console.WriteLine("OID = " + ntf.OldParentID); Console.WriteLine("FID = " + _folderFirst.FolderIDs.EntryId); Console.WriteLine("SID = " + _folderSecond.FolderIDs.EntryId); Assert.AreEqual(GetFolderID(ntf.ParentID), _folderSecond.FolderIDs.EntryId); Assert.AreEqual(GetFolderID(ntf.OldParentID), _folderFirst.FolderIDs.EntryId); ++_count; _complete = true; break; case 1: message = OutlookSession.OpenMessage(ntf.EntryID, _storeID); if (message == null) { return; } Console.WriteLine(message.GetStringProp(MAPIConst.PR_SUBJECT)); Assert.IsNotNull(message); using ( message ) { msgId = OutlookSession.GetMessageID(message); recordKey = message.GetBinProp(MAPIConst.PR_RECORD_KEY); } Console.WriteLine("Id1: " + msgId); Console.WriteLine("Id2: " + _messageID); if (msgId != _messageID) { if (recordKey == _recordKey) { _messageID = msgId; } else { return; } } Assert.AreEqual(GetFolderID(ntf.ParentID), _folderFirst.FolderIDs.EntryId); Assert.AreEqual(GetFolderID(ntf.OldParentID), _folderSecond.FolderIDs.EntryId); ++_count; _complete = true; break; } }
public virtual void OnMailMove(MAPIFullNtf ntf) { }
public virtual void OnMailCopy(MAPIFullNtf ntf) { }
public virtual void OnFolderCopy(MAPIFullNtf ntf) { }
public virtual void OnFolderMove(MAPIFullNtf ntf) { }
private void OnMailMoveImpl(MAPIFullNtf ntf) { if (CheckStorageIgnored(_storeID)) { return; } FolderDescriptor folderDescriptor = FolderDescriptor.Get(ntf.ParentID, _storeID); if (folderDescriptor == null) { return; } try { IEMessage message = OutlookSession.OpenMessage(ntf.EntryID, _storeID); if (message == null) { return; } using ( message ) { string realID = message.GetBinProp(MAPIConst.PR_ENTRYID); if (realID == null) { realID = ntf.EntryID; } else { if (OutlookSession.IsMailExported(realID)) { return; } } string messageClass = MessageType.GetMessageClass(message); if (MessageType.InterpretAsMail(messageClass)) { Core.ResourceAP.QueueJob(JobPriority.AboveNormal, new MailMovedDescriptor(ntf, _storeID)); } else if (MessageType.InterpretAsContact(messageClass)) { if (folderDescriptor.ContainerClass != FolderType.Contact) { _tracer.Trace("Contact was moved to deleted items"); IResource contact = Core.ResourceStore.FindUniqueResource(STR.Contact, PROP.EntryID, realID); string entryID = realID; if (contact == null && ntf.OldEntryID != null) { _tracer.Trace("contact not found"); contact = Core.ResourceStore.FindUniqueResource(STR.Contact, PROP.EntryID, ntf.OldEntryID); entryID = ntf.EntryID; } if (contact != null) { _tracer.Trace("contact found"); _tracer.Trace("RemoveFromSync"); Contact.RemoveFromSync(contact, entryID); } else { _tracer.Trace("ClearInvalidEntryIDFromContacts"); _jobStrategy.QueueJob(new MethodInvoker(REGISTRY.ClearInvalidEntryIDFromContacts)); } } else { string searchEntryID = realID; if (realID != ntf.OldEntryID) { searchEntryID = ntf.OldEntryID; } _tracer.Trace("ContactDescriptorWrapper process moving"); ContactDescriptorWrapper.Do(_jobStrategy.JobPriority, folderDescriptor, realID, searchEntryID); } //OutlookSession.OutlookProcessor.QueueJob( new ContactDescriptorWrapper( folderDescriptor, ntf.EntryID ) ); } else if (MessageType.InterpretAsTask(messageClass)) { _tracer.Trace("Task was moved"); if (Core.ResourceStore.FindUniqueResource(STR.Task, PROP.EntryID, realID) != null) { TaskDescriptor.Do(JobPriority.AboveNormal, folderDescriptor, message, realID); } else { RefreshTaskFolder(folderDescriptor); FolderDescriptor oldFolderDescriptor = FolderDescriptor.Get(ntf.OldParentID, _storeID); if (oldFolderDescriptor != null) { RefreshTaskFolder(oldFolderDescriptor); } } } else { _tracer.Trace("Unknown item of class " + messageClass + " was moved"); } } } catch (System.Threading.ThreadAbortException ex) { Tracer._TraceException(ex); } catch (Exception exception) { Core.ReportBackgroundException(exception); } }
public virtual void OnMailModify(MAPIFullNtf ntf) { }