PeopleValidationTask.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. /// <summary>
  10. /// Class PeopleValidationTask.
  11. /// </summary>
  12. public class PeopleValidationTask : IScheduledTask, IConfigurableScheduledTask
  13. {
  14. private readonly ILibraryManager _libraryManager;
  15. private readonly ILocalizationManager _localization;
  16. /// <summary>
  17. /// Initializes a new instance of the <see cref="PeopleValidationTask" /> class.
  18. /// </summary>
  19. /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
  20. /// <param name="localization">Instance of the <see cref="ILocalizationManager"/> interface.</param>
  21. public PeopleValidationTask(ILibraryManager libraryManager, ILocalizationManager localization)
  22. {
  23. _libraryManager = libraryManager;
  24. _localization = localization;
  25. }
  26. /// <inheritdoc />
  27. public string Name => _localization.GetLocalizedString("TaskRefreshPeople");
  28. /// <inheritdoc />
  29. public string Description => _localization.GetLocalizedString("TaskRefreshPeopleDescription");
  30. /// <inheritdoc />
  31. public string Category => _localization.GetLocalizedString("TasksLibraryCategory");
  32. /// <inheritdoc />
  33. public string Key => "RefreshPeople";
  34. /// <inheritdoc />
  35. public bool IsHidden => false;
  36. /// <inheritdoc />
  37. public bool IsEnabled => true;
  38. /// <inheritdoc />
  39. public bool IsLogged => true;
  40. /// <summary>
  41. /// Creates the triggers that define when the task will run.
  42. /// </summary>
  43. /// <returns>An <see cref="IEnumerable{TaskTriggerInfo}"/> containing the default trigger infos for this task.</returns>
  44. public IEnumerable<TaskTriggerInfo> GetDefaultTriggers()
  45. {
  46. yield return new TaskTriggerInfo
  47. {
  48. Type = TaskTriggerInfoType.IntervalTrigger,
  49. IntervalTicks = TimeSpan.FromDays(7).Ticks
  50. };
  51. }
  52. /// <inheritdoc />
  53. public Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken)
  54. {
  55. return _libraryManager.ValidatePeopleAsync(progress, cancellationToken);
  56. }
  57. }