internal static cMessageHandleList FromMessages(IEnumerable <cMessage> pMessages) { if (pMessages == null) { throw new ArgumentNullException(nameof(pMessages)); } object lMessageCache = null; cMessageHandleList lMessageHandles = new cMessageHandleList(); foreach (var lMessage in pMessages) { if (lMessage == null) { throw new ArgumentOutOfRangeException(nameof(pMessages), "contains nulls"); } if (lMessageCache == null) { lMessageCache = lMessage.MessageHandle.MessageCache; } else if (!ReferenceEquals(lMessage.MessageHandle.MessageCache, lMessageCache)) { throw new ArgumentOutOfRangeException(nameof(pMessages), "contains mixed message caches"); } lMessageHandles.Add(lMessage.MessageHandle); } return(new cMessageHandleList(lMessageHandles.Distinct())); }
internal cStoreFeedback(IEnumerable <cMessage> pMessages, eStoreOperation pOperation, cStorableFlags pFlags) { if (pMessages == null) { throw new ArgumentNullException(nameof(pMessages)); } if (pFlags == null) { throw new ArgumentNullException(nameof(pFlags)); } object lMessageCache = null; cMessageHandleList lMessageHandles = new cMessageHandleList(); foreach (var lMessage in pMessages) { if (lMessage == null) { throw new ArgumentOutOfRangeException(nameof(pMessages), "contains nulls"); } var lMessageHandle = lMessage.MessageHandle; if (lMessageCache == null) { lMessageCache = lMessageHandle.MessageCache; } else if (!ReferenceEquals(lMessageHandle.MessageCache, lMessageCache)) { throw new ArgumentOutOfRangeException(nameof(pMessages), "contains mixed message caches"); } lMessageHandles.Add(lMessageHandle); } mItems = new List <cStoreFeedbackItem>(from lMessageHandle in lMessageHandles.Distinct() select new cStoreFeedbackItem(lMessageHandle)); mOperation = pOperation; mFlags = pFlags; }