NewsService.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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", Summary = "Gets the latest product news.")]
  8. public class GetProductNews : IReturn<QueryResult<NewsItem>>
  9. {
  10. /// <summary>
  11. /// Skips over a given number of items within the results. Use for paging.
  12. /// </summary>
  13. /// <value>The start index.</value>
  14. [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")]
  15. public int? StartIndex { get; set; }
  16. /// <summary>
  17. /// The maximum number of items to return
  18. /// </summary>
  19. /// <value>The limit.</value>
  20. [ApiMember(Name = "Limit", Description = "Optional. The maximum number of records to return", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
  21. public int? Limit { get; set; }
  22. }
  23. public class NewsService : BaseApiService
  24. {
  25. private readonly INewsService _newsService;
  26. public NewsService(INewsService newsService)
  27. {
  28. _newsService = newsService;
  29. }
  30. public object Get(GetProductNews request)
  31. {
  32. var result = _newsService.GetProductNews(new NewsQuery
  33. {
  34. StartIndex = request.StartIndex,
  35. Limit = request.Limit
  36. });
  37. return ToOptimizedSerializedResultUsingCache(result);
  38. }
  39. }
  40. }