Microsoft.Legal.MatterCenter.Utility.MailMessageParser.SetContentDisposition C# (CSharp) Méthode

SetContentDisposition() public méthode

Set all content disposition related fields.
public SetContentDisposition ( string headerLineContent ) : void
headerLineContent string Content of the mail header line.
Résultat void
        public void SetContentDisposition(string headerLineContent)
        {
            if (!string.IsNullOrEmpty(headerLineContent))
            {
                string[] mailParameters = headerLineContent.Split(new string[] { ServiceConstants.SEMICOLON }, StringSplitOptions.RemoveEmptyEntries);
                if (0 == mailParameters.Length)
                {
                    this.ContentDisposition = new ContentDisposition("inline");
                    return;
                }

                this.ContentDisposition = new ContentDisposition(mailParameters[0].Trim());

                for (int mailParametersCount = 1; mailParametersCount < mailParameters.Length; mailParametersCount++)
                {
                    string[] nameValue = mailParameters[mailParametersCount].Split(new string[] { ServiceConstants.OPERATOR_EQUAL }, StringSplitOptions.None);
                    if (2 != nameValue.Length)
                    {
                        continue;
                    }

                    string name = nameValue[0].Trim().ToUpperInvariant();
                    string value = nameValue[1].Trim();
                    value = value.Replace(ServiceConstants.DOUBLE_QUOTE, string.Empty);

                    switch (name)
                    {
                        case ServiceConstants.MailAttributes.FILENAME:
                            this.ContentDisposition.FileName = value;
                            break;
                        case ServiceConstants.MailAttributes.SIZE:
                            this.ContentDisposition.Size = long.Parse(value, CultureInfo.InvariantCulture);
                            break;
                        case ServiceConstants.MailAttributes.CREATION_DATE:
                            this.ContentDisposition.CreationDate = DateTime.Parse(value, CultureInfo.InvariantCulture);
                            break;
                        case ServiceConstants.MailAttributes.MODIFICATION_DATE:
                            this.ContentDisposition.ModificationDate = DateTime.Parse(value, CultureInfo.InvariantCulture);
                            break;
                        case ServiceConstants.MailAttributes.READ_DATE:
                            this.ContentDisposition.ReadDate = DateTime.Parse(value, CultureInfo.InvariantCulture);
                            break;
                    }
                }
            }
        }

Usage Example

Exemple #1
0
        /// <summary>
        /// Convert one MIME header field and update message accordingly
        /// </summary>
        /// <param name="message">Parsed message object</param>
        /// <param name="headerField">header field</param>
        private void ProcessHeaderField(MailMessageParser message, string headerField)
        {
            string headerLineType;
            string headerLineContent;
            int separatorPosition = headerField.IndexOf(ServiceConstants.COLON, StringComparison.CurrentCulture);
            if (0 < separatorPosition)
            {
                ////process header field type
                headerLineType = headerField.Substring(0, separatorPosition).ToUpperInvariant();
                headerLineContent = headerField.Substring(separatorPosition + 1).Trim(whiteSpaceChars);
                if (string.IsNullOrEmpty(headerLineType) || string.IsNullOrEmpty(headerLineContent))
                {
                    ////mail header parts missing, exist function
                    return;
                }
                //// add header line to headers
                message.Headers.Add(headerLineType, headerLineContent);

                switch (headerLineType)
                {
                    case ServiceConstants.MailAttributes.BCC:
                        AddMailAddresses(headerLineContent, message.Bcc);
                        break;
                    case ServiceConstants.MailAttributes.CC:
                        AddMailAddresses(headerLineContent, message.CC);
                        break;
                    case ServiceConstants.MailAttributes.CONTENT_DESCRIPTION:
                        message.ContentDescription = headerLineContent;
                        break;
                    case ServiceConstants.MailAttributes.CONTENT_DISPOSITION:
                        message.SetContentDisposition(headerLineContent);
                        break;
                    case ServiceConstants.MailAttributes.CONTENT_ID:
                        message.ContentId = headerLineContent;
                        break;
                    case ServiceConstants.MailAttributes.CONTENT_TRANSFER_ENCODING:
                        message.ContentTransferEncoding = ConvertToTransferEncoding(headerLineContent);
                        break;
                    case ServiceConstants.MailAttributes.CONTENT_TYPE:
                        message.SetContentTypeFields(headerLineContent);
                        break;
                    case ServiceConstants.MailAttributes.DATE:
                        message.DeliveryDate = this.ConvertToDateTime(headerLineContent);
                        break;
                    case ServiceConstants.MailAttributes.FROM:
                        MailAddress address = ConvertToMailAddress(headerLineContent);
                        if (null != address)
                        {
                            message.From = address;
                        }
                        break;
                    case ServiceConstants.MailAttributes.SENDER:
                        message.Sender = ConvertToMailAddress(headerLineContent);
                        break;
                    case ServiceConstants.MailAttributes.SUBJECT:
                        message.Subject = headerLineContent;
                        break;
                    case ServiceConstants.MailAttributes.TO:
                        AddMailAddresses(headerLineContent, message.To);
                        break;
                    case ServiceConstants.MailAttributes.IMPORTANCE:
                        message.MailImportance = headerLineContent;
                        break;
                    case ServiceConstants.MailAttributes.CATEGORIES:
                        message.MailCategories = headerLineContent;
                        break;
                    case ServiceConstants.MailAttributes.RECEIVED:
                        if (message.ReceivedDate.Year.Equals(1))
                        {
                            message.ReceivedDate = this.ProcessReceivedDate(headerLineContent);
                        }
                        break;
                    default:
                        message.UnknowHeaderlines.Add(headerField);
                        if (IsCollectHiddenHeaderLines)
                        {
                            AllHiddenHeaderLines.Add(headerField);
                        }

                        break;
                }
            }
        }
All Usage Examples Of Microsoft.Legal.MatterCenter.Utility.MailMessageParser::SetContentDisposition