GuideMigration.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using MediaBrowser.Common.Net;
  6. using MediaBrowser.Common.Updates;
  7. using MediaBrowser.Controller;
  8. using MediaBrowser.Controller.Configuration;
  9. using MediaBrowser.Model.Logging;
  10. using MediaBrowser.Model.Serialization;
  11. using MediaBrowser.Model.Tasks;
  12. using MediaBrowser.Model.Updates;
  13. using System.Linq;
  14. namespace Emby.Server.Implementations.Migrations
  15. {
  16. public class GuideMigration : IVersionMigration
  17. {
  18. private readonly IServerConfigurationManager _config;
  19. private readonly ITaskManager _taskManager;
  20. public GuideMigration(IServerConfigurationManager config, ITaskManager taskManager)
  21. {
  22. _config = config;
  23. _taskManager = taskManager;
  24. }
  25. public async Task Run()
  26. {
  27. var name = "GuideRefresh3";
  28. if (!_config.Configuration.Migrations.Contains(name, StringComparer.OrdinalIgnoreCase))
  29. {
  30. Task.Run(() =>
  31. {
  32. _taskManager.QueueScheduledTask(_taskManager.ScheduledTasks.Select(i => i.ScheduledTask)
  33. .First(i => string.Equals(i.Key, "RefreshGuide", StringComparison.OrdinalIgnoreCase)));
  34. });
  35. var list = _config.Configuration.Migrations.ToList();
  36. list.Add(name);
  37. _config.Configuration.Migrations = list.ToArray();
  38. _config.SaveConfiguration();
  39. }
  40. }
  41. }
  42. }