ActivityLogService.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using MediaBrowser.Controller.Activity;
  2. using MediaBrowser.Controller.Net;
  3. using MediaBrowser.Model.Activity;
  4. using MediaBrowser.Model.Querying;
  5. using ServiceStack;
  6. using System;
  7. using System.Globalization;
  8. namespace MediaBrowser.Api.System
  9. {
  10. [Route("/System/ActivityLog/Entries", "GET", Summary = "Gets activity log entries")]
  11. public class GetActivityLogs : IReturn<QueryResult<ActivityLogEntry>>
  12. {
  13. /// <summary>
  14. /// Skips over a given number of items within the results. Use for paging.
  15. /// </summary>
  16. /// <value>The start index.</value>
  17. [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")]
  18. public int? StartIndex { get; set; }
  19. /// <summary>
  20. /// The maximum number of items to return
  21. /// </summary>
  22. /// <value>The limit.</value>
  23. [ApiMember(Name = "Limit", Description = "Optional. The maximum number of records to return", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
  24. public int? Limit { get; set; }
  25. [ApiMember(Name = "MinDate", Description = "Optional. The minimum date. Format = ISO", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")]
  26. public string MinDate { get; set; }
  27. }
  28. [Authenticated]
  29. public class ActivityLogService : BaseApiService
  30. {
  31. private readonly IActivityManager _activityManager;
  32. public ActivityLogService(IActivityManager activityManager)
  33. {
  34. _activityManager = activityManager;
  35. }
  36. public object Get(GetActivityLogs request)
  37. {
  38. DateTime? minDate = string.IsNullOrWhiteSpace(request.MinDate) ?
  39. (DateTime?)null :
  40. DateTime.Parse(request.MinDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
  41. var result = _activityManager.GetActivityLogEntries(minDate, request.StartIndex, request.Limit);
  42. return ToOptimizedResult(result);
  43. }
  44. }
  45. }