GameSystemXmlSaver.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System.IO;
  2. using System.Xml;
  3. using MediaBrowser.Controller.Configuration;
  4. using MediaBrowser.Controller.Entities;
  5. using MediaBrowser.Controller.Library;
  6. using MediaBrowser.Model.IO;
  7. using MediaBrowser.Model.Xml;
  8. using Microsoft.Extensions.Logging;
  9. namespace MediaBrowser.LocalMetadata.Savers
  10. {
  11. public class GameSystemXmlSaver : BaseXmlSaver
  12. {
  13. public GameSystemXmlSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory) : base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger, xmlReaderSettingsFactory)
  14. {
  15. }
  16. public override bool IsEnabledFor(BaseItem item, ItemUpdateType updateType)
  17. {
  18. if (!item.SupportsLocalMetadata)
  19. {
  20. return false;
  21. }
  22. return item is GameSystem && updateType >= ItemUpdateType.MetadataDownload;
  23. }
  24. protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
  25. {
  26. var gameSystem = (GameSystem)item;
  27. if (!string.IsNullOrEmpty(gameSystem.GameSystemName))
  28. {
  29. writer.WriteElementString("GameSystem", gameSystem.GameSystemName);
  30. }
  31. }
  32. protected override string GetLocalSavePath(BaseItem item)
  33. {
  34. return Path.Combine(item.Path, "gamesystem.xml");
  35. }
  36. protected override string GetRootElementName(BaseItem item)
  37. {
  38. return "Item";
  39. }
  40. }
  41. }