using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using Microsoft.Extensions.Logging; using System.Threading; using System.Threading.Tasks; using System.Xml; using MediaBrowser.Model.IO; using MediaBrowser.Model.Xml; namespace MediaBrowser.LocalMetadata.Parsers { public class GameSystemXmlParser : BaseItemXmlParser { public Task FetchAsync(MetadataResult item, string metadataFile, CancellationToken cancellationToken) { Fetch(item, metadataFile, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); return Task.CompletedTask; } /// /// Fetches the data from XML node. /// /// The reader. /// The result. protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult result) { var item = result.Item; switch (reader.Name) { case "GameSystem": { var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { item.GameSystemName = val; } break; } case "GamesDbId": { var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { item.SetProviderId(MetadataProviders.Gamesdb, val); } break; } default: base.FetchDataFromXmlNode(reader, result); break; } } public GameSystemXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem) { } } }