SeasonNfoParser.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.Globalization;
  2. using System.Xml;
  3. using MediaBrowser.Common.Configuration;
  4. using MediaBrowser.Controller.Entities.TV;
  5. using MediaBrowser.Controller.Providers;
  6. using Microsoft.Extensions.Logging;
  7. namespace MediaBrowser.XbmcMetadata.Parsers
  8. {
  9. /// <summary>
  10. /// Nfo parser for seasons.
  11. /// </summary>
  12. public class SeasonNfoParser : BaseNfoParser<Season>
  13. {
  14. /// <summary>
  15. /// Initializes a new instance of the <see cref="SeasonNfoParser"/> class.
  16. /// </summary>
  17. /// <param name="logger">The logger.</param>
  18. /// <param name="config">the configuration manager.</param>
  19. /// <param name="providerManager">The provider manager.</param>
  20. public SeasonNfoParser(ILogger logger, IConfigurationManager config, IProviderManager providerManager)
  21. : base(logger, config, providerManager)
  22. {
  23. }
  24. /// <inheritdoc />
  25. protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Season> itemResult)
  26. {
  27. var item = itemResult.Item;
  28. switch (reader.Name)
  29. {
  30. case "seasonnumber":
  31. {
  32. var number = reader.ReadElementContentAsString();
  33. if (!string.IsNullOrWhiteSpace(number))
  34. {
  35. if (int.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out var num))
  36. {
  37. item.IndexNumber = num;
  38. }
  39. }
  40. break;
  41. }
  42. default:
  43. base.FetchDataFromXmlNode(reader, itemResult);
  44. break;
  45. }
  46. }
  47. }
  48. }