Esempio n. 1
0
        public override void Parse(ref IList <MIMER.RFC822.Field> fields, ref string fieldString)
        {
            if (fields.Count == 0)
            {
                DecoratedFieldParser.Parse(ref fields, ref fieldString);
            }

            IList <RFC822.Field> tmpFields = new List <RFC822.Field>();

            foreach (RFC822.Field field in fields)
            {
                if (field.Name.Equals("Content-Disposition"))
                {
                    Match  typeMatch, tmpMatch;
                    string key, val;

                    typeMatch = m_DispositionTypePattern.RegularExpression.Match(field.Body);
                    MatchCollection parameterMatches = m_DispositionPattern.RegularExpression.Matches(field.Body);

                    ContentDispositionField dispositionField = new ContentDispositionField();
                    dispositionField.Name        = field.Name;
                    dispositionField.Body        = field.Body;
                    dispositionField.Disposition = typeMatch.Value;

                    foreach (Match parameterMatch in parameterMatches)
                    {
                        tmpMatch = Regex.Match(parameterMatch.Value, m_TokenPattern.TextPattern + "=");
                        key      = tmpMatch.Value.TrimEnd(new char[] { '=' });
                        tmpMatch = Regex.Match(parameterMatch.Value, "(?<==)" + m_ValuePattern.TextPattern);
                        val      = tmpMatch.Value.Trim(new char[] { '\\', '"' });
                        dispositionField.Parameters.Add(key, val);
                    }
                    tmpFields.Add(dispositionField);
                }
            }

            foreach (RFC822.Field field in tmpFields)
            {
                fields.Add(field);
            }
        }
Esempio n. 2
0
 public static bool IsInline(this ContentDispositionField field)
 {
     return(field.Disposition.ToLower().Equals("inline"));
 }
Esempio n. 3
0
 public static bool IsAttachment(this ContentDispositionField field)
 {
     return(field.Disposition.ToLower().Equals("attachment"));
 }