// // BodyPartMultipart.cs // // Author: Jeffrey Stedfast // // Copyright (c) 2013-2020 .NET Foundation and Contributors // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // using System; using System.Text; using MimeKit; namespace MailKit { /// /// A multipart body part. /// /// /// A multipart body part. /// public class BodyPartMultipart : BodyPart { /// /// Initializes a new instance of the class. /// /// /// Creates a new . /// public BodyPartMultipart () { BodyParts = new BodyPartCollection (); } /// /// Gets the child body parts. /// /// /// Gets the child body parts. /// /// The child body parts. public BodyPartCollection BodyParts { get; private set; } /// /// Gets the Content-Disposition of the body part, if available. /// /// /// Gets the Content-Disposition of the body part, if available. /// /// The content disposition. public ContentDisposition ContentDisposition { get; set; } /// /// Gets the Content-Language of the body part, if available. /// /// /// Gets the Content-Language of the body part, if available. /// /// The content language. public string[] ContentLanguage { get; set; } /// /// Gets the Content-Location of the body part, if available. /// /// /// Gets the Content-Location of the body part, if available. /// /// The content location. public Uri ContentLocation { get; set; } /// /// Dispatches to the specific visit method for this MIME body part. /// /// /// This default implementation for nodes /// calls . Override this /// method to call into a more specific method on a derived visitor class /// of the class. However, it should still /// support unknown visitors by calling /// . /// /// The visitor. /// /// is null. /// public override void Accept (BodyPartVisitor visitor) { if (visitor == null) throw new ArgumentNullException (nameof (visitor)); visitor.VisitBodyPartMultipart (this); } /// /// Encodes the into the . /// /// /// Encodes the into the . /// /// The string builder. protected override void Encode (StringBuilder builder) { Encode (builder, BodyParts); builder.Append (' '); Encode (builder, ContentType.MediaSubtype); builder.Append (' '); Encode (builder, ContentType.Parameters); builder.Append (' '); Encode (builder, ContentDisposition); builder.Append (' '); Encode (builder, ContentLanguage); builder.Append (' '); Encode (builder, ContentLocation); } } }