PeopleValidationTask.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using MediaBrowser.Controller.Library;
  6. using MediaBrowser.Model.Globalization;
  7. using MediaBrowser.Model.Tasks;
  8. namespace Emby.Server.Implementations.ScheduledTasks.Tasks
  9. {
  10. /// <summary>
  11. /// Class PeopleValidationTask.
  12. /// </summary>
  13. public class PeopleValidationTask : IScheduledTask, IConfigurableScheduledTask
  14. {
  15. private readonly ILibraryManager _libraryManager;
  16. private readonly ILocalizationManager _localization;
  17. /// <summary>
  18. /// Initializes a new instance of the <see cref="PeopleValidationTask" /> class.
  19. /// </summary>
  20. /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
  21. /// <param name="localization">Instance of the <see cref="ILocalizationManager"/> interface.</param>
  22. public PeopleValidationTask(ILibraryManager libraryManager, ILocalizationManager localization)
  23. {
  24. _libraryManager = libraryManager;
  25. _localization = localization;
  26. }
  27. /// <inheritdoc />
  28. public string Name => _localization.GetLocalizedString("TaskRefreshPeople");
  29. /// <inheritdoc />
  30. public string Description => _localization.GetLocalizedString("TaskRefreshPeopleDescription");
  31. /// <inheritdoc />
  32. public string Category => _localization.GetLocalizedString("TasksLibraryCategory");
  33. /// <inheritdoc />
  34. public string Key => "RefreshPeople";
  35. /// <inheritdoc />
  36. public bool IsHidden => false;
  37. /// <inheritdoc />
  38. public bool IsEnabled => true;
  39. /// <inheritdoc />
  40. public bool IsLogged => true;
  41. /// <summary>
  42. /// Creates the triggers that define when the task will run.
  43. /// </summary>
  44. /// <returns>An <see cref="IEnumerable{TaskTriggerInfo}"/> containing the default trigger infos for this task.</returns>
  45. public IEnumerable<TaskTriggerInfo> GetDefaultTriggers()
  46. {
  47. return new[]
  48. {
  49. new TaskTriggerInfo
  50. {
  51. Type = TaskTriggerInfoType.IntervalTrigger,
  52. IntervalTicks = TimeSpan.FromDays(7).Ticks
  53. }
  54. };
  55. }
  56. /// <inheritdoc />
  57. public Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken)
  58. {
  59. return _libraryManager.ValidatePeopleAsync(progress, cancellationToken);
  60. }
  61. }
  62. }