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); }
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); }