MovieSpecialFeaturesHandler.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using MediaBrowser.Common.Net.Handlers;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Entities.Movies;
  4. using MediaBrowser.Model.DTO;
  5. using System.ComponentModel.Composition;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Threading.Tasks;
  9. namespace MediaBrowser.Api.HttpHandlers
  10. {
  11. /// <summary>
  12. /// This handler retrieves special features for movies
  13. /// </summary>
  14. [Export(typeof(BaseHandler))]
  15. public class MovieSpecialFeaturesHandler : BaseSerializationHandler<DtoBaseItem[]>
  16. {
  17. public override bool HandlesRequest(HttpListenerRequest request)
  18. {
  19. return ApiService.IsApiUrlMatch("MovieSpecialFeatures", request);
  20. }
  21. protected override Task<DtoBaseItem[]> GetObjectToSerialize()
  22. {
  23. User user = ApiService.GetUserById(QueryString["userid"], true);
  24. var movie = ApiService.GetItemById(ItemId) as Movie;
  25. // If none
  26. if (movie.SpecialFeatures == null)
  27. {
  28. return Task.FromResult(new DtoBaseItem[] { });
  29. }
  30. return Task.WhenAll(movie.SpecialFeatures.Select(i => ApiService.GetDtoBaseItem(i, user, includeChildren: false)));
  31. }
  32. protected string ItemId
  33. {
  34. get
  35. {
  36. return QueryString["id"];
  37. }
  38. }
  39. }
  40. }