internal static string GetReasonDescription(ConversionFailureReason reason)
        {
            switch (reason)
            {
            case ConversionFailureReason.ExceedsLimit:
                return("Content conversion limit(s) exceeded");

            case ConversionFailureReason.MaliciousContent:
                return("Malicious message content");

            case ConversionFailureReason.CorruptContent:
                return("Corrupt message content");

            case ConversionFailureReason.ConverterInternalFailure:
                return("Content conversion internal failure");

            default:
                return(string.Empty);
            }
        }
        private static LocalizedString GetReasonDescription(ConversionFailureReason reason)
        {
            switch (reason)
            {
            case ConversionFailureReason.ExceedsLimit:
                return(ServerStrings.ConversionLimitsExceeded);

            case ConversionFailureReason.MaliciousContent:
                return(ServerStrings.ConversionMaliciousContent);

            case ConversionFailureReason.CorruptContent:
                return(ServerStrings.ConversionCorruptContent);

            case ConversionFailureReason.ConverterInternalFailure:
                return(ServerStrings.ConversionInternalFailure);

            case ConversionFailureReason.ConverterUnsupportedContent:
                return(ServerStrings.ConversionUnsupportedContent);

            default:
                return(LocalizedString.Empty);
            }
        }
 public ConversionFailedException(ConversionFailureReason reason, Exception innerException) : base(ConversionFailedException.GetReasonDescription(reason), innerException)
 {
     EnumValidator.ThrowIfInvalid <ConversionFailureReason>(reason, "reason");
     this.reason = reason;
 }
 public ConversionFailedException(ConversionFailureReason reason, LocalizedString message, Exception innerException) : base(message, innerException)
 {
     EnumValidator.ThrowIfInvalid <ConversionFailureReason>(reason, "reason");
     this.reason = reason;
 }
 public ConversionFailedException(ConversionFailureReason reason) : this(reason, null)
 {
 }