Exemple #1
0
        /// <summary>
        /// Returns a <see cref="System.String" /> that represents this instance.
        /// </summary>
        /// <returns>
        /// A <see cref="System.String" /> that represents this instance.
        /// </returns>
        public override string ToString()
        {
            var responseCodeText = ReplyCode.ToString(CultureInfo.InvariantCulture);
            var statusCodeText   = string.IsNullOrWhiteSpace(EnhancedStatusCode)
                ? string.Empty
                : $" {EnhancedStatusCode.Trim()}";

            if (Content.Count == 0)
            {
                return($"{responseCodeText}{statusCodeText}");
            }

            var builder = new StringBuilder();

            for (var i = 0; i < Content.Count; i++)
            {
                var isLastLine = i == Content.Count - 1;

                builder.Append(isLastLine
                    ? $"{responseCodeText}{statusCodeText} {Content[i]}"
                    : $"{responseCodeText}-{Content[i]}\r\n");
            }

            return(builder.ToString());
        }
Exemple #2
0
        private static EnhancedStatusCode TryParseMimeStatusCode(int?mimeStatusCode)
        {
            EnhancedStatusCode result;

            if (mimeStatusCode != null && EnhancedStatusCode.TryParse(DsnMdnUtil.MimeStatusCodeToString(mimeStatusCode.Value), out result))
            {
                return(result);
            }
            return(null);
        }
        internal static object CodeGetter(IPropertyBag propertyBag)
        {
            string             escapedName = ((ADObjectId)propertyBag[ADObjectSchema.Id]).Rdn.EscapedName;
            EnhancedStatusCode result;

            if (EnhancedStatusCode.TryParse(escapedName, out result))
            {
                return(result);
            }
            return(null);
        }
        internal static object QuotaMessageTypeGetter(IPropertyBag propertyBag)
        {
            string             escapedName = ((ADObjectId)propertyBag[ADObjectSchema.Id]).Rdn.EscapedName;
            EnhancedStatusCode enhancedStatusCode;

            if (EnhancedStatusCode.TryParse(escapedName, out enhancedStatusCode))
            {
                return(null);
            }
            try
            {
                return(Enum.Parse(typeof(QuotaMessageType), escapedName, true));
            }
            catch (ArgumentException)
            {
            }
            return(null);
        }
Exemple #5
0
 public CodeNotADefaultException(EnhancedStatusCode code, Exception innerException) : base(Strings.DsnCodeNotADefault(code), innerException)
 {
     this.code = code;
 }
Exemple #6
0
 protected SystemMessageIdParameter(string identity) : base(identity)
 {
     string[] array = identity.Split(new char[]
     {
         '\\'
     });
     if (array.Length == 1)
     {
         if (base.InternalADObjectId == null)
         {
             throw new ArgumentException(Strings.ErrorInvalidIdentity(identity), "identity");
         }
         return;
     }
     else if (array.Length == 2)
     {
         CultureInfo cultureInfo;
         if (string.IsNullOrEmpty(array[0]) || string.IsNullOrEmpty(array[1]) || !this.TryGetCulture(array[0], out cultureInfo) || !this.IsValidQuotaMessageType(array[1]))
         {
             throw new ArgumentException(Strings.ErrorInvalidIdentity(identity), "identity");
         }
         this.relativeDnParts    = new string[2];
         this.relativeDnParts[0] = cultureInfo.LCID.ToString(NumberFormatInfo.InvariantInfo);
         this.relativeDnParts[1] = array[1];
         return;
     }
     else
     {
         if (array.Length != 3)
         {
             throw new ArgumentException(Strings.ErrorInvalidIdentity(identity), "identity");
         }
         CultureInfo cultureInfo2;
         if (string.IsNullOrEmpty(array[0]) || string.IsNullOrEmpty(array[1]) || string.IsNullOrEmpty(array[2]) || !this.TryGetCulture(array[0], out cultureInfo2) || (!array[1].Equals("internal", StringComparison.OrdinalIgnoreCase) && !array[1].Equals("external", StringComparison.OrdinalIgnoreCase)) || !EnhancedStatusCode.IsValid(array[2]))
         {
             throw new ArgumentException(Strings.ErrorInvalidIdentity(identity), "identity");
         }
         this.relativeDnParts    = new string[3];
         this.relativeDnParts[0] = cultureInfo2.LCID.ToString(NumberFormatInfo.InvariantInfo);
         this.relativeDnParts[1] = array[1];
         this.relativeDnParts[2] = array[2];
         return;
     }
 }
Exemple #7
0
        public static void GetMapiDsnRecipientStatusCode(string statusString, out MapiDiagnosticCode diagCode, out NdrReasonCode reasonCode, out int statusCode)
        {
            diagCode   = MapiDiagnosticCode.NoDiagnostic;
            reasonCode = NdrReasonCode.TransferFailed;
            EnhancedStatusCode enhancedStatusCode;

            string[] array;
            int      num;
            int      num2;
            int      num3;

            if (!EnhancedStatusCode.TryParse(statusString, out enhancedStatusCode) || (array = statusString.Split(new char[]
            {
                '.'
            })).Length != 3 || !int.TryParse(array[0], out num) || !int.TryParse(array[1], out num2) || !int.TryParse(array[2], out num3))
            {
                StorageGlobals.ContextTraceError <string>(ExTraceGlobals.CcInboundMimeTracer, "DsnMdnUtil::GetMapiDsnRecipientStatusCode: incorrect status string, {0}", statusString);
                throw new ConversionFailedException(ConversionFailureReason.CorruptContent, null);
            }
            switch (num2)
            {
            case 1:
                switch (num3)
                {
                case 1:
                    diagCode   = MapiDiagnosticCode.MailRecipientUnknown;
                    reasonCode = NdrReasonCode.TransferImpossible;
                    goto IL_288;

                case 2:
                    diagCode = MapiDiagnosticCode.BadDestinationSystemAddress;
                    goto IL_288;

                case 3:
                    diagCode = MapiDiagnosticCode.MailAddressIncorrect;
                    goto IL_288;

                case 4:
                    diagCode = MapiDiagnosticCode.OrNameAmbiguous;
                    goto IL_288;

                case 6:
                    diagCode = MapiDiagnosticCode.MailRecipientMoved;
                    goto IL_288;
                }
                diagCode = MapiDiagnosticCode.OrNameUnrecognized;
                break;

            case 2:
                switch (num3)
                {
                case 1:
                    diagCode = MapiDiagnosticCode.MailRefused;
                    break;

                case 2:
                    diagCode = MapiDiagnosticCode.LengthConstraintViolatd;
                    break;

                case 3:
                    diagCode = MapiDiagnosticCode.LengthConstraintViolatd;
                    break;

                case 4:
                    diagCode = MapiDiagnosticCode.ExpansionFailed;
                    break;

                default:
                    diagCode = MapiDiagnosticCode.MailRefused;
                    break;
                }
                break;

            case 3:
                switch (num3)
                {
                case 1:
                    diagCode = MapiDiagnosticCode.MailRefused;
                    break;

                case 2:
                    break;

                case 3:
                    diagCode = MapiDiagnosticCode.CriticalFuncUnsupported;
                    break;

                case 4:
                    diagCode = MapiDiagnosticCode.LengthConstraintViolatd;
                    break;

                case 5:
                    diagCode = MapiDiagnosticCode.LoopDetected;
                    break;

                default:
                    diagCode = MapiDiagnosticCode.MailRefused;
                    break;
                }
                break;

            case 4:
                switch (num3)
                {
                case 0:
                case 4:
                    goto IL_288;

                case 3:
                    reasonCode = NdrReasonCode.DirectoryOperatnFailed;
                    goto IL_288;

                case 6:
                case 8:
                    diagCode = MapiDiagnosticCode.LoopDetected;
                    goto IL_288;

                case 7:
                    diagCode = MapiDiagnosticCode.MaximumTimeExpired;
                    goto IL_288;
                }
                diagCode = MapiDiagnosticCode.MtsCongested;
                break;

            case 5:
                switch (num3)
                {
                case 3:
                    diagCode = MapiDiagnosticCode.TooManyRecipients;
                    goto IL_288;

                case 4:
                    diagCode = MapiDiagnosticCode.ParametersInvalid;
                    goto IL_288;
                }
                diagCode = MapiDiagnosticCode.NoBilateralAgreement;
                break;

            case 6:
                switch (num3)
                {
                case 1:
                    diagCode = MapiDiagnosticCode.ContentTypeUnsupported;
                    break;

                case 2:
                    diagCode = MapiDiagnosticCode.ProhibitedToConvert;
                    break;

                case 3:
                    diagCode = MapiDiagnosticCode.ImpracticalToConvert;
                    break;

                case 4:
                    diagCode = MapiDiagnosticCode.MultipleInfoLosses;
                    break;

                case 5:
                    reasonCode = NdrReasonCode.ConversionNotPerformed;
                    break;

                default:
                    diagCode = MapiDiagnosticCode.ContentTypeUnsupported;
                    break;
                }
                break;

            case 7:
                switch (num3)
                {
                case 1:
                    diagCode = MapiDiagnosticCode.SubmissionProhibited;
                    break;

                case 2:
                    diagCode = MapiDiagnosticCode.ExpansionProhibited;
                    break;

                case 3:
                    diagCode = MapiDiagnosticCode.ReassignmentProhibited;
                    break;

                default:
                    diagCode = MapiDiagnosticCode.SecureMessagingError;
                    break;
                }
                break;
            }
IL_288:
            if (num2 < 0 || num2 > 9)
            {
                num2 = 0;
            }
            if (num3 < 0 || num3 > 9)
            {
                num3 = 0;
            }
            statusCode = num * 100 + num2 * 10 + num3;
        }