File: System\ServiceModel\Dispatcher\WorkflowOperationFault.cs
Project: ndp\cdf\src\NetFx35\System.WorkflowServices\System.WorkflowServices.csproj (System.WorkflowServices)
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Dispatcher
{
    using System.ServiceModel.Channels;
    using System.Globalization;
    using System.Messaging;
    using System.Xml;
 
    class WorkflowOperationFault : MessageFault
    {
        const string operationNotAvailable = "OperationNotAvaialable";
        const string operationNotImplemented = "OperationNotImplemented";
 
        FaultCode faultCode;
        FaultReason faultReason;
 
        public WorkflowOperationFault(MessageQueueErrorCode errorCode)
        {
            if (errorCode == MessageQueueErrorCode.QueueNotAvailable)
            {
                faultCode = FaultCode.CreateSenderFaultCode(operationNotAvailable, ContextMessageHeader.ContextHeaderNamespace);
                faultReason = new FaultReason(new FaultReasonText(SR2.GetString(SR2.OperationNotAvailable), CultureInfo.CurrentCulture));
            }
            else
            {
                faultCode = FaultCode.CreateSenderFaultCode(operationNotImplemented, ContextMessageHeader.ContextHeaderNamespace);
                faultReason = new FaultReason(new FaultReasonText(SR2.GetString(SR2.OperationNotImplemented), CultureInfo.CurrentCulture));
            }
        }
 
        public override FaultCode Code
        {
            get
            {
                return this.faultCode;
            }
        }
 
        public override bool HasDetail
        {
            get
            {
                return false;
            }
        }
 
        public override FaultReason Reason
        {
            get
            {
                return this.faultReason;
            }
        }
 
        protected override void OnWriteDetailContents(XmlDictionaryWriter writer)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
    }
}