/// <inheritdoc cref="cStoreFeedback.Summary" select="summary|returns|remarks"/> public sStoreFeedbackSummary Summary() { sStoreFeedbackSummary lSummary = new sStoreFeedbackSummary(); foreach (var lItem in mItems) { lItem.IncrementSummary(lItem.MessageHandle, mOperation, mFlags, ref lSummary); } return(lSummary); }
internal void IncrementSummary(iMessageHandle pMessageHandle, eStoreOperation pOperation, cStorableFlags pFlags, ref sStoreFeedbackSummary pSummary) { if (WasNotUnchangedSince) { pSummary.WasNotUnchangedSinceCount++; return; } if (ReceivedFlagsUpdate) { pSummary.UpdatedCount++; return; } if (pMessageHandle == null) { pSummary.UnknownCount++; return; } if (pMessageHandle.Expunged) { pSummary.ExpungedCount++; return; } if (pMessageHandle.Flags == null) { pSummary.UnknownCount++; return; } switch (pOperation) { case eStoreOperation.add: if (pMessageHandle.Flags.Contains(pFlags)) { pSummary.ReflectsOperationCount++; } else { pSummary.NotReflectsOperationCount++; } return; case eStoreOperation.remove: if (pMessageHandle.Flags.Contains(pFlags)) { pSummary.NotReflectsOperationCount++; } else { pSummary.ReflectsOperationCount++; } return; case eStoreOperation.replace: if (pMessageHandle.Flags.SymmetricDifference(pFlags, kMessageFlag.Recent).Count() == 0) { pSummary.ReflectsOperationCount++; } else { pSummary.NotReflectsOperationCount++; } return; } pSummary.UnknownCount++; // shouldn't happen }