FileOrganizationNotifier.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using MediaBrowser.Common.ScheduledTasks;
  2. using MediaBrowser.Controller.FileOrganization;
  3. using MediaBrowser.Controller.Plugins;
  4. using MediaBrowser.Controller.Session;
  5. using MediaBrowser.Model.Events;
  6. using MediaBrowser.Model.FileOrganization;
  7. using MediaBrowser.Model.Logging;
  8. using System;
  9. using System.Threading;
  10. using MediaBrowser.Model.Tasks;
  11. namespace MediaBrowser.Server.Implementations.FileOrganization
  12. {
  13. /// <summary>
  14. /// Class SessionInfoWebSocketListener
  15. /// </summary>
  16. class FileOrganizationNotifier : IServerEntryPoint
  17. {
  18. private readonly IFileOrganizationService _organizationService;
  19. private readonly ISessionManager _sessionManager;
  20. private readonly ITaskManager _taskManager;
  21. public FileOrganizationNotifier(ILogger logger, IFileOrganizationService organizationService, ISessionManager sessionManager, ITaskManager taskManager)
  22. {
  23. _organizationService = organizationService;
  24. _sessionManager = sessionManager;
  25. _taskManager = taskManager;
  26. }
  27. public void Run()
  28. {
  29. _organizationService.ItemAdded += _organizationService_ItemAdded;
  30. _organizationService.ItemRemoved += _organizationService_ItemRemoved;
  31. _organizationService.ItemUpdated += _organizationService_ItemUpdated;
  32. _organizationService.LogReset += _organizationService_LogReset;
  33. //_taskManager.TaskCompleted += _taskManager_TaskCompleted;
  34. }
  35. private void _organizationService_LogReset(object sender, EventArgs e)
  36. {
  37. _sessionManager.SendMessageToAdminSessions("AutoOrganize_LogReset", (FileOrganizationResult)null, CancellationToken.None);
  38. }
  39. private void _organizationService_ItemUpdated(object sender, GenericEventArgs<FileOrganizationResult> e)
  40. {
  41. _sessionManager.SendMessageToAdminSessions("AutoOrganize_ItemUpdated", e.Argument, CancellationToken.None);
  42. }
  43. private void _organizationService_ItemRemoved(object sender, GenericEventArgs<FileOrganizationResult> e)
  44. {
  45. _sessionManager.SendMessageToAdminSessions("AutoOrganize_ItemRemoved", e.Argument, CancellationToken.None);
  46. }
  47. private void _organizationService_ItemAdded(object sender, GenericEventArgs<FileOrganizationResult> e)
  48. {
  49. _sessionManager.SendMessageToAdminSessions("AutoOrganize_ItemAdded", e.Argument, CancellationToken.None);
  50. }
  51. //private void _taskManager_TaskCompleted(object sender, TaskCompletionEventArgs e)
  52. //{
  53. // var taskWithKey = e.Task.ScheduledTask as IHasKey;
  54. // if (taskWithKey != null && taskWithKey.Key == "AutoOrganize")
  55. // {
  56. // _sessionManager.SendMessageToAdminSessions("AutoOrganize_TaskCompleted", (FileOrganizationResult)null, CancellationToken.None);
  57. // }
  58. //}
  59. public void Dispose()
  60. {
  61. _organizationService.ItemAdded -= _organizationService_ItemAdded;
  62. _organizationService.ItemRemoved -= _organizationService_ItemRemoved;
  63. _organizationService.ItemUpdated -= _organizationService_ItemUpdated;
  64. _organizationService.LogReset -= _organizationService_LogReset;
  65. //_taskManager.TaskCompleted -= _taskManager_TaskCompleted;
  66. }
  67. }
  68. }