FileOrganizationNotifier.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using MediaBrowser.Controller.FileOrganization;
  2. using MediaBrowser.Controller.Plugins;
  3. using MediaBrowser.Model.Logging;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using MediaBrowser.Model.Events;
  10. using MediaBrowser.Model.FileOrganization;
  11. using MediaBrowser.Controller.Session;
  12. using System.Threading;
  13. namespace MediaBrowser.Server.Implementations.FileOrganization
  14. {
  15. /// <summary>
  16. /// Class SessionInfoWebSocketListener
  17. /// </summary>
  18. class FileOrganizationNotifier : IServerEntryPoint
  19. {
  20. private readonly IFileOrganizationService _organizationService;
  21. private readonly ISessionManager _sessionManager;
  22. public FileOrganizationNotifier(ILogger logger, IFileOrganizationService organizationService, ISessionManager sessionManager)
  23. {
  24. _organizationService = organizationService;
  25. _sessionManager = sessionManager;
  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. }
  34. private void _organizationService_LogReset(object sender, EventArgs e)
  35. {
  36. _sessionManager.SendMessageToAdminSessions("AutoOrganizeUpdate", (FileOrganizationResult)null, CancellationToken.None);
  37. }
  38. private void _organizationService_ItemUpdated(object sender, GenericEventArgs<FileOrganizationResult> e)
  39. {
  40. _sessionManager.SendMessageToAdminSessions("AutoOrganizeUpdate", e.Argument, CancellationToken.None);
  41. }
  42. private void _organizationService_ItemRemoved(object sender, GenericEventArgs<FileOrganizationResult> e)
  43. {
  44. _sessionManager.SendMessageToAdminSessions("AutoOrganizeUpdate", (FileOrganizationResult)null, CancellationToken.None);
  45. }
  46. private void _organizationService_ItemAdded(object sender, GenericEventArgs<FileOrganizationResult> e)
  47. {
  48. _sessionManager.SendMessageToAdminSessions("AutoOrganizeUpdate", (FileOrganizationResult)null, CancellationToken.None);
  49. }
  50. public void Dispose()
  51. {
  52. _organizationService.ItemAdded -= _organizationService_ItemAdded;
  53. _organizationService.ItemRemoved -= _organizationService_ItemRemoved;
  54. _organizationService.ItemUpdated -= _organizationService_ItemUpdated;
  55. _organizationService.LogReset -= _organizationService_LogReset;
  56. }
  57. }
  58. }