CssOutputFormatter.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System.Text;
  2. using System.Threading.Tasks;
  3. using Microsoft.AspNetCore.Http;
  4. using Microsoft.AspNetCore.Mvc.Formatters;
  5. namespace Jellyfin.Api.Formatters;
  6. /// <summary>
  7. /// Css output formatter.
  8. /// </summary>
  9. public class CssOutputFormatter : TextOutputFormatter
  10. {
  11. /// <summary>
  12. /// Initializes a new instance of the <see cref="CssOutputFormatter"/> class.
  13. /// </summary>
  14. public CssOutputFormatter()
  15. {
  16. SupportedMediaTypes.Add("text/css");
  17. SupportedEncodings.Add(Encoding.UTF8);
  18. SupportedEncodings.Add(Encoding.Unicode);
  19. }
  20. /// <summary>
  21. /// Write context object to stream.
  22. /// </summary>
  23. /// <param name="context">Writer context.</param>
  24. /// <param name="selectedEncoding">Unused. Writer encoding.</param>
  25. /// <returns>Write stream task.</returns>
  26. public override Task WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
  27. {
  28. var stringResponse = context.Object?.ToString();
  29. return stringResponse is null ? Task.CompletedTask : context.HttpContext.Response.WriteAsync(stringResponse);
  30. }
  31. }