MovieSpecialFeaturesHandler.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. Movie movie = ApiService.GetItemById(ItemId) as Movie;
  25. // If none
  26. if (movie.SpecialFeatures == null)
  27. {
  28. return Task.FromResult<DTOBaseItem[]>(new DTOBaseItem[] { });
  29. }
  30. return Task.WhenAll<DTOBaseItem>(movie.SpecialFeatures.Select(i =>
  31. {
  32. return ApiService.GetDTOBaseItem(i, user, includeChildren: false, includePeople: true);
  33. }));
  34. }
  35. protected string ItemId
  36. {
  37. get
  38. {
  39. return QueryString["id"];
  40. }
  41. }
  42. }
  43. }