FileOrganizationNotifier.cs 3.3 KB

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