//[SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters,
        //    Justification = "We are restricting the activities that can call this API.")]
        public void RegisterBookmarkScope(NativeActivityContext context, BookmarkScopeHandle bookmarkScopeHandle)
        {
            if (context == null)
            {
                throw FxTrace.Exception.ArgumentNull(nameof(context));
            }

            context.ThrowIfDisposed();

            if (bookmarkScopeHandle == null)
            {
                throw FxTrace.Exception.ArgumentNull(nameof(bookmarkScopeHandle));
            }

            if ((this.ImportantBookmarks != null && this.ImportantBookmarks.Count != 0) || (this.UnimportantBookmarks != null && this.UnimportantBookmarks.Count != 0))
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.ExclusiveHandleRegisterBookmarkScopeFailed));
            }

            if (this.bookmarkScopesListIsDefault)
            {
                this.bookmarkScopesListIsDefault = false;
                this.bookmarkScopes.Clear();
            }

            this.bookmarkScopes.Add(bookmarkScopeHandle);
            this.readOnlyBookmarkScopeCollection = null;
        }
        public void Exit(NativeActivityContext context)
        {
            context.ThrowIfDisposed();
            ThrowIfUninitialized();

            context.ExitNoPersist(this);
        }
        private void CompleteTransactionCore(NativeActivityContext context, BookmarkCallback callback)
        {
            context.ThrowIfDisposed();

            if (this.rootTransaction != null)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.CannotCompleteRuntimeOwnedTransaction));
            }

            if (!context.HasRuntimeTransaction)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.NoRuntimeTransactionExists));
            }

            if (!this.isHandleInitialized)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.UnInitializedRuntimeTransactionHandle));
            }

            if (this.SuppressTransaction)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.RuntimeTransactionIsSuppressed));
            }

            context.CompleteTransaction(this, callback);
        }
        public void Exit(NativeActivityContext context)
        {
            context.ThrowIfDisposed();
            ThrowIfUninitialized();

            context.ExitNoPersist(this);
        }
 private void ThrowIfContextIsNullOrDisposed(NativeActivityContext context)
 {
     if (context == null)
     {
         throw FxTrace.Exception.ArgumentNull("context");
     }
     context.ThrowIfDisposed();
 }
Exemple #6
0
        //To be called from public APIs that need to verify the passed in context
        private void ThrowIfContextIsNullOrDisposed(NativeActivityContext context)
        {
            if (context == null)
            {
                throw CoreWf.Internals.FxTrace.Exception.ArgumentNull("context");
            }

            context.ThrowIfDisposed();
        }
Exemple #7
0
        //To be called from public APIs that need to verify the passed in context
        private void ThrowIfContextIsNullOrDisposed(NativeActivityContext context)
        {
            if (context == null)
            {
                throw FxTrace.Exception.ArgumentNull(nameof(context));
            }

            context.ThrowIfDisposed();
        }
        //[SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters,
        //    Justification = "We are restricting the activities that can call this API.")]
        public void Reinitialize(NativeActivityContext context)
        {
            if (context == null)
            {
                throw FxTrace.Exception.ArgumentNull(nameof(context));
            }

            context.ThrowIfDisposed();

            if ((this.ImportantBookmarks != null && this.ImportantBookmarks.Count != 0) || (this.UnimportantBookmarks != null && this.UnimportantBookmarks.Count != 0))
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.ExclusiveHandleReinitializeFailed));
            }
            this.bookmarkScopes.Clear();
            this.readOnlyBookmarkScopeCollection = null;
            this.PerformDefaultRegistration();
        }
        private void RequestOrRequireTransactionContextCore(NativeActivityContext context, Action <NativeActivityTransactionContext, object> callback, object state, bool isRequires)
        {
            if (context == null)
            {
                throw FxTrace.Exception.ArgumentNull(nameof(context));
            }

            context.ThrowIfDisposed();

            if (context.HasRuntimeTransaction)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.RuntimeTransactionAlreadyExists));
            }

            if (context.IsInNoPersistScope)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.CannotSetRuntimeTransactionInNoPersist));
            }

            if (!this.isHandleInitialized)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.UnInitializedRuntimeTransactionHandle));
            }

            if (this.SuppressTransaction)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.RuntimeTransactionIsSuppressed));
            }

            if (isRequires)
            {
                if (context.RequiresTransactionContextWaiterExists)
                {
                    throw FxTrace.Exception.AsError(new InvalidOperationException(SR.OnlyOneRequireTransactionContextAllowed));
                }

                this.ThrowIfNotRegistered(SR.RuntimeTransactionHandleNotRegisteredAsExecutionProperty("RequireTransactionContext"));
            }
            else
            {
                this.ThrowIfNotRegistered(SR.RuntimeTransactionHandleNotRegisteredAsExecutionProperty("RequestTransactionContext"));
            }

            context.RequestTransactionContext(isRequires, this, callback, state);
        }
 private void CompleteTransactionCore(NativeActivityContext context, BookmarkCallback callback)
 {
     context.ThrowIfDisposed();
     if (this.rootTransaction != null)
     {
         throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.CannotCompleteRuntimeOwnedTransaction));
     }
     if (!context.HasRuntimeTransaction)
     {
         throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.NoRuntimeTransactionExists));
     }
     if (!this.isHandleInitialized)
     {
         throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.UnInitializedRuntimeTransactionHandle));
     }
     if (this.SuppressTransaction)
     {
         throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.RuntimeTransactionIsSuppressed));
     }
     context.CompleteTransaction(this, callback);
 }
 public void Reinitialize(NativeActivityContext context)
 {
     if (context == null)
     {
         throw FxTrace.Exception.ArgumentNull("context");
     }
     context.ThrowIfDisposed();
     if (((this.ImportantBookmarks != null) && (this.ImportantBookmarks.Count != 0)) || ((this.UnimportantBookmarks != null) && (this.UnimportantBookmarks.Count != 0)))
     {
         throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.ExclusiveHandleReinitializeFailed));
     }
     this.bookmarkScopes.Clear();
     this.readOnlyBookmarkScopeCollection = null;
     this.PerformDefaultRegistration();
 }
 public void RegisterBookmarkScope(NativeActivityContext context, BookmarkScopeHandle bookmarkScopeHandle)
 {
     if (context == null)
     {
         throw FxTrace.Exception.ArgumentNull("context");
     }
     context.ThrowIfDisposed();
     if (bookmarkScopeHandle == null)
     {
         throw FxTrace.Exception.ArgumentNull("bookmarkScopeHandle");
     }
     if (((this.ImportantBookmarks != null) && (this.ImportantBookmarks.Count != 0)) || ((this.UnimportantBookmarks != null) && (this.UnimportantBookmarks.Count != 0)))
     {
         throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.ExclusiveHandleRegisterBookmarkScopeFailed));
     }
     if (this.bookmarkScopesListIsDefault)
     {
         this.bookmarkScopesListIsDefault = false;
         this.bookmarkScopes.Clear();
     }
     this.bookmarkScopes.Add(bookmarkScopeHandle);
     this.readOnlyBookmarkScopeCollection = null;
 }
 public void Enter(NativeActivityContext context)
 {
     context.ThrowIfDisposed();
     base.ThrowIfUninitialized();
     context.EnterNoPersist(this);
 }
        void RequestOrRequireTransactionContextCore(NativeActivityContext context, Action<NativeActivityTransactionContext, object> callback, object state, bool isRequires)
        {
            if (context == null)
            {
                throw FxTrace.Exception.ArgumentNull("context");
            }

            context.ThrowIfDisposed();

            if (context.HasRuntimeTransaction)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.RuntimeTransactionAlreadyExists));
            }

            if (context.IsInNoPersistScope)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.CannotSetRuntimeTransactionInNoPersist));
            }

            if (!this.isHandleInitialized)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.UnInitializedRuntimeTransactionHandle));
            }

            if (this.SuppressTransaction)
            {
                throw FxTrace.Exception.AsError(new InvalidOperationException(SR.RuntimeTransactionIsSuppressed));
            }

            if (isRequires)
            {
                if (context.RequiresTransactionContextWaiterExists)
                {
                    throw FxTrace.Exception.AsError(new InvalidOperationException(SR.OnlyOneRequireTransactionContextAllowed));
                }

                this.ThrowIfNotRegistered(SR.RuntimeTransactionHandleNotRegisteredAsExecutionProperty("RequireTransactionContext"));
            }
            else
            {
                this.ThrowIfNotRegistered(SR.RuntimeTransactionHandleNotRegisteredAsExecutionProperty("RequestTransactionContext"));
            }

            context.RequestTransactionContext(isRequires, this, callback, state);
        }