// Copyright © WireMock.Net using System.Collections.Generic; using System.IO; using MimeKit; using Stef.Validation; using WireMock.Models.Mime; namespace WireMock.Models; /// /// A wrapper class that implements the interface by wrapping an interface. /// /// /// This class provides a simplified, read-only view of an . /// public class MimePartDataWrapper : MimeEntityDataWrapper, IMimePartData { private readonly IMimePart _part; /// /// Initializes a new instance of the class. /// /// The MIME part to wrap. /// /// is . /// public MimePartDataWrapper(IMimePart part) : base(part) { _part = Guard.NotNull(part); } /// public string ContentDescription => _part.ContentDescription; /// public int? ContentDuration => _part.ContentDuration; /// public string ContentMd5 => _part.ContentMd5; /// public string ContentTransferEncoding => _part.ContentTransferEncoding.ToString(); /// public string FileName => _part.FileName; /// public IDictionary Content => new Dictionary() { { nameof(MimePart.Content.Encoding), _part.Content.Encoding }, { nameof(MimePart.Content.NewLineFormat), _part.Content.NewLineFormat }, { nameof(MimePart.Content.Stream), _part.Content.Stream } }; /// public Stream Open() => _part.Content.Open(); /// public override string ToString() { return _part.ToString()!; } }