Esempio n. 1
0
                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);
                }
Esempio n. 2
0
                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);
                }
Esempio n. 3
0
                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);
                }