DlnaEnabledAttribute.cs 803 B

12345678910111213141516171819202122232425
  1. using Emby.Dlna;
  2. using MediaBrowser.Controller.Configuration;
  3. using Microsoft.AspNetCore.Http;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.AspNetCore.Mvc.Filters;
  6. using Microsoft.Extensions.DependencyInjection;
  7. namespace Jellyfin.Api.Attributes;
  8. /// <inheritdoc />
  9. public sealed class DlnaEnabledAttribute : ActionFilterAttribute
  10. {
  11. /// <inheritdoc />
  12. public override void OnActionExecuting(ActionExecutingContext context)
  13. {
  14. var serverConfigurationManager = context.HttpContext.RequestServices.GetRequiredService<IServerConfigurationManager>();
  15. var enabled = serverConfigurationManager.GetDlnaConfiguration().EnableServer;
  16. if (!enabled)
  17. {
  18. context.Result = new StatusCodeResult(StatusCodes.Status503ServiceUnavailable);
  19. }
  20. }
  21. }