// Copyright © WireMock.Net
using System;
using System.Collections.Generic;
using System.Linq;
using MimeKit;
using Stef.Validation;
using WireMock.Models.Mime;
namespace WireMock.Models;
///
/// A wrapper class that implements the IContentDispositionData interface
/// by wrapping a ContentDisposition object.
///
///
/// This class provides a simplified, read-only view of a ContentDisposition.
///
public class ContentDispositionDataWrapper : IContentDispositionData
{
private readonly ContentDisposition _contentDisposition;
///
/// Initializes a new instance of the class.
///
/// The ContentDisposition to wrap.
public ContentDispositionDataWrapper(ContentDisposition contentDisposition)
{
_contentDisposition = Guard.NotNull(contentDisposition);
Parameters = _contentDisposition.Parameters.Select(p => p.ToString()).ToList();
}
///
public string Disposition => _contentDisposition.Disposition;
///
public bool IsAttachment => _contentDisposition.IsAttachment;
///
public IList Parameters { get; private set; }
///
public string FileName => _contentDisposition.FileName;
///
public DateTimeOffset? CreationDate => _contentDisposition.CreationDate;
///
public DateTimeOffset? ModificationDate => _contentDisposition.ModificationDate;
///
public DateTimeOffset? ReadDate => _contentDisposition.ReadDate;
///
public long? Size => _contentDisposition.Size;
///
public override string ToString()
{
return _contentDisposition.ToString();
}
}