public static string ReadParameterAttribute(string data, ref int offset, StringBuilder builder) { if (!MailBnfHelper.SkipCFWS(data, ref offset)) { return(null); } return(MailBnfHelper.ReadToken(data, ref offset, null)); }
private void ParseValue() { if (this.parameters == null) { int num = 0; this.parameters = new Dictionary <string, string>(); this.mediaType = MailBnfHelper.ReadToken(base.Value, ref num, null); if (num >= base.Value.Length || base.Value[num++] != '/') { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeContentTypeHeaderInvalid", new object[0]))); } this.subType = MailBnfHelper.ReadToken(base.Value, ref num, null); while (MailBnfHelper.SkipCFWS(base.Value, ref num)) { if (num >= base.Value.Length || base.Value[num++] != ';') { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeContentTypeHeaderInvalid", new object[0]))); } if (!MailBnfHelper.SkipCFWS(base.Value, ref num)) { break; } string text = MailBnfHelper.ReadParameterAttribute(base.Value, ref num, null); if (text == null || num >= base.Value.Length || base.Value[num++] != '=') { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeContentTypeHeaderInvalid", new object[0]))); } string value = MailBnfHelper.ReadParameterValue(base.Value, ref num, null); this.parameters.Add(text.ToLowerInvariant(), value); } if (this.parameters.ContainsKey(MtomGlobals.StartInfoParam)) { string text2 = this.parameters[MtomGlobals.StartInfoParam]; int num2 = text2.IndexOf(';'); if (num2 > -1) { while (MailBnfHelper.SkipCFWS(text2, ref num2)) { if (text2[num2] != ';') { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeContentTypeHeaderInvalid", new object[0]))); } num2++; string text3 = MailBnfHelper.ReadParameterAttribute(text2, ref num2, null); if (text3 == null || num2 >= text2.Length || text2[num2++] != '=') { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeContentTypeHeaderInvalid", new object[0]))); } string value2 = MailBnfHelper.ReadParameterValue(text2, ref num2, null); if (text3 == MtomGlobals.ActionParam) { this.parameters[MtomGlobals.ActionParam] = value2; } } } } } }
public static string ReadParameterValue(string data, ref int offset, StringBuilder builder) { if (!MailBnfHelper.SkipCFWS(data, ref offset)) { return(string.Empty); } if (offset < data.Length && data[offset] == '"') { return(MailBnfHelper.ReadQuotedString(data, ref offset, builder)); } return(MailBnfHelper.ReadToken(data, ref offset, builder)); }
private void ParseValue() { if (base.Value == "1.0") { this.version = "1.0"; return; } int num = 0; if (!MailBnfHelper.SkipCFWS(base.Value, ref num)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeVersionHeaderInvalid", new object[0]))); } StringBuilder stringBuilder = new StringBuilder(); MailBnfHelper.ReadDigits(base.Value, ref num, stringBuilder); if (!MailBnfHelper.SkipCFWS(base.Value, ref num) || num >= base.Value.Length || base.Value[num++] != '.' || !MailBnfHelper.SkipCFWS(base.Value, ref num)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeVersionHeaderInvalid", new object[0]))); } stringBuilder.Append('.'); MailBnfHelper.ReadDigits(base.Value, ref num, stringBuilder); this.version = stringBuilder.ToString(); }