/// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3501, Level=Informational, Channel=Analytic
 /// </summary>
 internal static bool InferredContractDescriptionIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation &&
            (FxTrace.ShouldTraceInformationToTraceSource || TD.IsEtwEventEnabled(1)));
 }
        static bool HandleEndResumeBookmark(IAsyncResult result)
        {
            WorkflowOperationContext thisPtr = (WorkflowOperationContext)result.AsyncState;

            bool completed     = false;
            bool shouldAbandon = true;

            try
            {
                BookmarkResumptionResult resumptionResult = thisPtr.workflowInstance.EndResumeProtocolBookmark(result);
                if (resumptionResult != BookmarkResumptionResult.Success)
                {
                    // Raise UnkownMessageReceivedEvent when we fail to resume bookmark
                    thisPtr.OperationContext.Host.RaiseUnknownMessageReceived(thisPtr.OperationContext.IncomingMessage);

                    // Only delay-retry this operation once (and only if retries are supported). Future calls will ensure the bookmark is set.
                    if (thisPtr.workflowInstance.BufferedReceiveManager != null)
                    {
                        bool bufferSuccess = thisPtr.workflowInstance.BufferedReceiveManager.BufferReceive(
                            thisPtr.OperationContext, thisPtr.receiveContext, thisPtr.bookmark.Name, BufferedReceiveState.WaitingOnBookmark, false);
                        if (bufferSuccess)
                        {
                            if (TD.BufferOutOfOrderMessageNoBookmarkIsEnabled())
                            {
                                TD.BufferOutOfOrderMessageNoBookmark(thisPtr.eventTraceActivity, thisPtr.workflowInstance.Id.ToString(), thisPtr.bookmark.Name);
                            }

                            shouldAbandon = false;
                        }
                    }

                    // The throw exception is intentional whether or not BufferedReceiveManager is set.
                    // This is to allow exception to bubble up the stack to WCF to cleanup various state (like Transaction).
                    // This is queue scenario and as far as the client is concerned, the client will not see any exception.
                    throw FxTrace.Exception.AsError(new FaultException(OperationExecutionFault.CreateOperationNotAvailableFault(thisPtr.workflowInstance.Id, thisPtr.bookmark.Name)));
                }

                lock (thisPtr.thisLock)
                {
                    if (thisPtr.CurrentState == State.ResultReceived)
                    {
                        thisPtr.CurrentState = State.Completed;
                        if (thisPtr.pendingException != null)
                        {
                            throw FxTrace.Exception.AsError(thisPtr.pendingException);
                        }
                        completed = true;
                    }
                    else
                    {
                        thisPtr.CurrentState = State.WaitForResult;
                        completed            = false;
                    }

                    // we are not really completed until the ReceiveContext finishes its work
                    if (completed)
                    {
                        completed = thisPtr.ProcessReceiveContext();
                    }

                    shouldAbandon = false;
                }
            }
            finally
            {
                if (shouldAbandon)
                {
                    BufferedReceiveManager.AbandonReceiveContext(thisPtr.receiveContext);
                }
                thisPtr.RemovePendingOperation();
            }

            return(completed);
        }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=1436, Level=verbose, Channel=analytic
 /// </summary>
 internal static bool PendingMessagesPerChannelRatioIsEnabled()
 {
     return(FxTrace.ShouldTraceVerbose && TD.IsEtwEventEnabled(18));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=57398, Level=Warning, Channel=Analytic
 /// </summary>
 internal static bool MaxInstancesExceededIsEnabled()
 {
     return(FxTrace.ShouldTraceWarning &&
            (FxTrace.ShouldTraceWarningToTraceSource || TD.IsEtwEventEnabled(0)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=2023, Level=Verbose, Channel=Debug
 /// </summary>
 internal static bool SendMessageChannelCacheMissIsEnabled()
 {
     return(FxTrace.ShouldTraceVerbose && TD.IsEtwEventEnabled(15));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=1449, Level=Informational, Channel=Debug
 /// </summary>
 internal static bool WfMessageReceivedIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation && TD.IsEtwEventEnabled(17));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3508, Level=verbose, Channel=Analytic
 /// </summary>
 internal static bool TrackingProfileNotFoundIsEnabled()
 {
     return(FxTrace.ShouldTraceVerbose &&
            (FxTrace.ShouldTraceVerboseToTraceSource || TD.IsEtwEventEnabled(13)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=225, Level=informational, Channel=Analytic
 /// </summary>
 internal static bool TraceCorrelationKeysIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation &&
            (FxTrace.ShouldTraceInformationToTraceSource || TD.IsEtwEventEnabled(14)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3556, Level=informational, Channel=debug
 /// </summary>
 internal static bool CreateWorkflowServiceHostStopIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation && TD.IsEtwEventEnabled(11));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3557, Level=informational, Channel=Analytic
 /// </summary>
 internal static bool TransactedReceiveScopeEndCommitFailedIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation &&
            (FxTrace.ShouldTraceInformationToTraceSource || TD.IsEtwEventEnabled(12)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3552, Level=Warning, Channel=Analytic
 /// </summary>
 internal static bool MaxPendingMessagesPerChannelExceededIsEnabled()
 {
     return(FxTrace.ShouldTraceWarning &&
            (FxTrace.ShouldTraceWarningToTraceSource || TD.IsEtwEventEnabled(9)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3551, Level=Informational, Channel=Analytic
 /// </summary>
 internal static bool BufferOutOfOrderMessageNoBookmarkIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation &&
            (FxTrace.ShouldTraceInformationToTraceSource || TD.IsEtwEventEnabled(8)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=441, Level=informational, Channel=Analytic
 /// </summary>
 internal static bool StopSignpostEventIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation &&
            (FxTrace.ShouldTraceInformationToTraceSource || TD.IsEtwEventEnabled(6)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3507, Level=Informational, Channel=Analytic
 /// </summary>
 internal static bool ServiceEndpointAddedIsEnabled()
 {
     return(FxTrace.ShouldTraceInformation &&
            (FxTrace.ShouldTraceInformationToTraceSource || TD.IsEtwEventEnabled(4)));
 }
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=3503, Level=Warning, Channel=Analytic
 /// </summary>
 internal static bool DuplicateCorrelationQueryIsEnabled()
 {
     return(FxTrace.ShouldTraceWarning &&
            (FxTrace.ShouldTraceWarningToTraceSource || TD.IsEtwEventEnabled(3)));
 }