File: MultipartSection.cs
Web Access
Project: src\src\Http\WebUtilities\src\Microsoft.AspNetCore.WebUtilities.csproj (Microsoft.AspNetCore.WebUtilities)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Microsoft.Extensions.Primitives;
using Microsoft.Net.Http.Headers;
 
namespace Microsoft.AspNetCore.WebUtilities;
 
/// <summary>
/// A multipart section read by <see cref="MultipartReader"/>.
/// </summary>
public class MultipartSection
{
    /// <summary>
    /// Gets the value of the <c>Content-Type</c> header.
    /// </summary>
    public string? ContentType
    {
        get
        {
            if (Headers != null && Headers.TryGetValue(HeaderNames.ContentType, out var values))
            {
                return values;
            }
            return null;
        }
    }
 
    /// <summary>
    /// Gets the value of the <c>Content-Disposition</c> header.
    /// </summary>
    public string? ContentDisposition
    {
        get
        {
            if (Headers != null && Headers.TryGetValue(HeaderNames.ContentDisposition, out var values))
            {
                return values;
            }
            return null;
        }
    }
 
    /// <summary>
    /// Gets or sets the multipart header collection.
    /// </summary>
    public Dictionary<string, StringValues>? Headers { get; set; }
 
    /// <summary>
    /// Gets or sets the body.
    /// </summary>
    public Stream Body { get; set; } = default!;
 
    /// <summary>
    /// The position where the body starts in the total multipart body.
    /// This may not be available if the total multipart body is not seekable.
    /// </summary>
    public long? BaseStreamOffset { get; set; }
}