NewsService.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using MediaBrowser.Controller.News;
  2. using MediaBrowser.Model.News;
  3. using MediaBrowser.Model.Querying;
  4. using ServiceStack;
  5. namespace MediaBrowser.Api
  6. {
  7. [Route("/News/Product", "GET")]
  8. [Api(Description = "Gets the latest product news.")]
  9. public class GetProductNews : IReturn<QueryResult<NewsItem>>
  10. {
  11. /// <summary>
  12. /// Skips over a given number of items within the results. Use for paging.
  13. /// </summary>
  14. /// <value>The start index.</value>
  15. [ApiMember(Name = "StartIndex", Description = "Optional. The record index to start at. All items with a lower index will be dropped from the results.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
  16. public int? StartIndex { get; set; }
  17. /// <summary>
  18. /// The maximum number of items to return
  19. /// </summary>
  20. /// <value>The limit.</value>
  21. [ApiMember(Name = "Limit", Description = "Optional. The maximum number of records to return", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
  22. public int? Limit { get; set; }
  23. }
  24. public class NewsService : BaseApiService
  25. {
  26. private readonly INewsService _newsService;
  27. public NewsService(INewsService newsService)
  28. {
  29. _newsService = newsService;
  30. }
  31. public object Get(GetProductNews request)
  32. {
  33. var result = _newsService.GetProductNews(new NewsQuery
  34. {
  35. StartIndex = request.StartIndex,
  36. Limit = request.Limit
  37. });
  38. return ToOptimizedSerializedResultUsingCache(result);
  39. }
  40. }
  41. }