public void AfterTransactionCompletionProcess_EvictsFromCache(string querySpaces, bool persisterHasCache, int expectedPropertySpaceLength, int expectedEntityEvictionCount, int expectedCollectionEvictionCount)
        {
            _persister.HasCache.Returns(persisterHasCache);

            var target = new BulkOperationCleanupAction(_session, new HashSet <string>(querySpaces.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries)));

            target.AfterTransactionCompletionProcess(true);

            Assert.AreEqual(expectedPropertySpaceLength, target.PropertySpaces.Length);

            if (expectedEntityEvictionCount > 0)
            {
                _factory.Received(1).EvictEntity(Arg.Is <IEnumerable <string> >(x => x.Count() == expectedEntityEvictionCount));
            }
            else
            {
                _factory.DidNotReceive().EvictEntity(Arg.Any <IEnumerable <string> >());
            }

            if (expectedCollectionEvictionCount > 0)
            {
                _factory.Received(1).EvictCollection(Arg.Is <IEnumerable <string> >(x => x.Count() == expectedCollectionEvictionCount));
            }
            else
            {
                _factory.DidNotReceive().EvictCollection(Arg.Any <IEnumerable <string> >());
            }
        }
 public Task AddActionAsync(BulkOperationCleanupAction cleanupAction, CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(Task.FromCanceled <object>(cancellationToken));
     }
     return(RegisterCleanupActionsAsync(cleanupAction, cancellationToken));
 }
        private void CoordinateSharedCacheCleanup(ISessionImplementor session)
        {
            BulkOperationCleanupAction action = new BulkOperationCleanupAction(session, CustomQuery.QuerySpaces);

            if (session.IsEventSource)
            {
                ((IEventSource)session).ActionQueue.AddAction(action);
            }
        }
        protected virtual void CoordinateSharedCacheCleanup(ISessionImplementor session)
        {
            var action = new BulkOperationCleanupAction(session, AffectedQueryables);

            action.Init();

            if (session.IsEventSource)
            {
                ((IEventSource)session).ActionQueue.AddAction(action);
            }
        }
        protected virtual async Task CoordinateSharedCacheCleanupAsync(ISessionImplementor session, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();
            var action = new BulkOperationCleanupAction(session, AffectedQueryables);

            await(action.InitAsync(cancellationToken)).ConfigureAwait(false);

            if (session.IsEventSource)
            {
                ((IEventSource)session).ActionQueue.AddAction(action);
            }
        }
Example #6
0
        private async Task CoordinateSharedCacheCleanupAsync(ISessionImplementor session, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();
            BulkOperationCleanupAction action = new BulkOperationCleanupAction(session, CustomQuery.QuerySpaces);

            await(action.InitAsync(cancellationToken)).ConfigureAwait(false);

            if (session.IsEventSource)
            {
                ((IEventSource)session).ActionQueue.AddAction(action);
            }
        }
        protected virtual void CoordinateSharedCacheCleanup(ISessionImplementor session)
        {
            var action = new BulkOperationCleanupAction(session, AffectedQueryables);

            if (session.IsEventSource)
            {
                ((IEventSource)session).ActionQueue.AddAction(action);
            }
            else
            {
                action.ExecuteAfterTransactionCompletion(true);
            }
        }
Example #8
0
 public Task AddActionAsync(BulkOperationCleanupAction cleanupAction, CancellationToken cancellationToken = default(CancellationToken))
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(Task.FromCanceled(cancellationToken));
     }
     try
     {
         AddAction(cleanupAction);
         return(Task.CompletedTask);
     }
     catch (Exception e)
     {
         return(Task.FromException(e));
     }
 }
Example #9
0
 public void AddAction(BulkOperationCleanupAction cleanupAction)
 {
     RegisterCleanupActions(cleanupAction);
 }
Example #10
0
 public void AddAction(BulkOperationCleanupAction cleanupAction)
 {
     // Add these directly to the executions queue
     executions.Add(cleanupAction);
 }