/// <summary> /// Handles the Removed event of the DistributedMemoryManagerCache control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="KeyCacheEventArgs{TKey}" /> instance containing the event data.</param> protected override void DistributedMemoryManagerCache_Removed(object sender, KeyCacheEventArgs <long> e) { var message = new FieldEntityCacheMessage( ); message.RemoveKeys.Add(e.Key); MessageChannel.Publish(message, PublishOptions.None, false, MergeMessages); }
/// <summary> /// Handles the Cleared event of the DistributedMemoryManagerCache control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="CacheEventArgs" /> instance containing the event data.</param> protected override void DistributedMemoryManagerCache_Cleared(object sender, CacheEventArgs e) { var message = new FieldEntityCacheMessage { Clear = true }; MessageChannel.Publish(message, PublishOptions.None, false, MergeMessages); }
/// <summary> /// Merges the messages. /// </summary> /// <param name="existingMessage">The existing message.</param> /// <param name="newMessage">The new message.</param> private void MergeMessages(FieldEntityCacheMessage existingMessage, FieldEntityCacheMessage newMessage) { existingMessage.Clear |= newMessage.Clear; existingMessage.RemoveKeys.UnionWith(newMessage.RemoveKeys); }