/// <summary> /// Handles the MessageReceived event of the channel. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="MessageEventArgs{TMessage}" /> instance containing the event data.</param> protected override void Channel_MessageReceived(object sender, MessageEventArgs <EntityFieldCacheMessage> e) { using (new DeferredChannelMessageContext()) { if (MessageReceivedAction != null) { MessageReceivedAction(e); } if (e.Message.Clear) { ProviderClear( ); return; } if (e.Message.RemoveKeys != null && e.Message.RemoveKeys.Count > 0) { foreach (SerializableEntityId key in e.Message.RemoveKeys) { ProviderRemove(key.Id); } RedisMessageCacheInvalidation.Invalidate(e.Message.RemoveKeys.ToList( )); } } }
/// <summary> /// Handles the MessageReceived event of the channel. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="args"> /// The <see cref="MessageEventArgs{EntityRelationshipCacheMessage}" /> instance containing the event /// data. /// </param> private static void Channel_MessageReceived(object sender, MessageEventArgs <EntityRelationshipCacheMessage> args) { using (new DeferredChannelMessageContext()) { if (args.Message.ClearForward && args.Message.ClearReverse) { Instance.ProviderClear( ); return; } if (args.Message.ClearForward) { Instance.ProviderClear(Direction.Forward); return; } if (args.Message.ClearReverse) { Instance.ProviderClear(Direction.Reverse); return; } if (args.Message.RemoveKeys != null && args.Message.RemoveKeys.Count > 0) { foreach (SerializableEntityRelationshipCacheKey key in args.Message.RemoveKeys) { Instance.ProviderRemove(new EntityRelationshipCacheKey(key.EntityId.Id, key.Direction)); } if (!args.Message.SuppressFullInvalidation) { RedisMessageCacheInvalidation.Invalidate(args.Message.RemoveKeys.Select(k => k.EntityId).ToList( )); } } if (args.Message.RemoveTypeKeys != null && args.Message.RemoveTypeKeys.Count > 0) { foreach (SerializableEntityRelationshipCacheTypeKey key in args.Message.RemoveTypeKeys) { Instance.ProviderRemove(new EntityRelationshipCacheTypeKey(key.EntityId.Id, key.Direction, key.TypeId)); } if (!args.Message.SuppressFullInvalidation) { RedisMessageCacheInvalidation.Invalidate(args.Message.RemoveTypeKeys.Select(k => k.EntityId).ToList( )); } } } }