public void UpdateMailboxStatus(cTrace.cContext pParentContext) { var lContext = pParentContext.NewMethod(nameof(cMailboxCacheItem), nameof(UpdateMailboxStatus)); if (mStatus == null && mMailboxStatus == null) { return; } fMailboxProperties lDifferences; if (mStatus == null) { lDifferences = fMailboxProperties.messagecount | fMailboxProperties.recentcount | fMailboxProperties.uidnext | fMailboxProperties.unseencount | fMailboxProperties.highestmodseq; // not uidvalidity because it is likely to have some heavy processing attached to it if it is monitored mMailboxStatus = null; } else { cMailboxStatus lMailboxStatus = new cMailboxStatus(mStatus.Messages ?? 0, mStatus.Recent ?? 0, mStatus.UIDNext ?? 0, mStatus.UIDValidity ?? 0, mStatus.Unseen ?? 0, mStatus.HighestModSeq ?? 0); lDifferences = ZSetExists(true) | cMailboxStatus.Differences(mMailboxStatus, lMailboxStatus); mMailboxStatus = lMailboxStatus; } mSynchroniser.InvokeMailboxPropertiesChanged(this, lDifferences, lContext); }
public void SetMailboxStatus(cMailboxStatus pMailboxStatus, cTrace.cContext pParentContext) { var lContext = pParentContext.NewMethod(nameof(cMailboxCacheItem), nameof(SetMailboxStatus), pMailboxStatus); if (pMailboxStatus == null) { throw new ArgumentNullException(nameof(pMailboxStatus)); } fMailboxProperties lDifferences = ZSetExists(true) | cMailboxStatus.Differences(mMailboxStatus, pMailboxStatus); mMailboxStatus = pMailboxStatus; mSynchroniser.InvokeMailboxPropertiesChanged(this, lDifferences, lContext); }
public void ResetExists(cTrace.cContext pParentContext) { var lContext = pParentContext.NewMethod(nameof(cMailboxCacheItem), nameof(ResetExists)); fMailboxProperties lProperties; if (mExists == true) { lProperties = fMailboxProperties.exists; } else { lProperties = 0; } mExists = false; mListFlags = null; mStatus = null; mMailboxStatus = null; mSelectedProperties = cMailboxSelectedProperties.NeverBeenSelected; mSynchroniser.InvokeMailboxPropertiesChanged(this, lProperties, lContext); }