/// <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> /// Invalidates the specified user from the cache. /// </summary> /// <param name="username"> /// Username to be removed from the cache. /// </param> public void CacheEntryInvalidate(string username) { CacheEntryInvalidateInternal(username); var message = new UserAccountCacheMessage { TenantName = Tenant.Name }; message.Usernames.Add(username); MessageChannel.Publish(message, PublishOptions.None, false, MergeMessages); }
/// <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) { using (var entityTypeContext = new EntityTypeContext( )) { HashSet <long> types = entityTypeContext.Get(e.Key); var message = new EntityFieldCacheMessage( ); message.RemoveKeys.Add(SerializableEntityId.Create(e.Key, types)); MessageChannel.Publish(message, PublishOptions.None, false, MergeMessages); } }
/// <summary> /// Clears the caches. /// </summary> /// <remarks>Note: the cache is only cleared for the current tenant.</remarks> public void Clear() { InternalClear(); if (MessageChannel != null) { var message = new PerTenantEntityTypeCacheMessage { Clear = true }; message.TenantIds.Add(RequestContext.TenantId); MessageChannel.Publish(message, PublishOptions.None, false, MergeMessages); } }