using System.Globalization ;
using System.Xml ;
using MediaBrowser.Common.Configuration ;
using MediaBrowser.Controller.Entities.TV ;
using MediaBrowser.Controller.Library ;
using MediaBrowser.Controller.Providers ;
using Microsoft.Extensions.Logging ;
namespace MediaBrowser.XbmcMetadata.Parsers
{
/// <summary>
/// Nfo parser for seasons.
/// </summary>
public class SeasonNfoParser : BaseNfoParser < Season >
{
/// <summary>
/// Initializes a new instance of the <see cref="SeasonNfoParser"/> class.
/// </summary>
/// <param name="logger">Instance of the <see cref="ILogger"/> interface.</param>
/// <param name="config">Instance of the <see cref="IConfigurationManager"/> interface.</param>
/// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param>
/// <param name="userManager">Instance of the <see cref="IUserManager"/> interface.</param>
/// <param name="userDataManager">Instance of the <see cref="IUserDataManager"/> interface.</param>
/// <param name="directoryService">Instance of the <see cref="DirectoryService"/> interface.</param>
public SeasonNfoParser (
ILogger logger ,
IConfigurationManager config ,
IProviderManager providerManager ,
IUserManager userManager ,
IUserDataManager userDataManager ,
IDirectoryService directoryService )
: base ( logger , config , providerManager , userManager , userDataManager , directoryService )
{
}
/// <inheritdoc />
protected override void FetchDataFromXmlNode ( XmlReader reader , MetadataResult < Season > itemResult )
{
var item = itemResult . Item ;
switch ( reader . Name )
{
case "seasonnumber" :
{
var number = reader . ReadElementContentAsString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( number ) )
{
if ( int . TryParse ( number , NumberStyles . Integer , CultureInfo . InvariantCulture , out var num ) )
{
item . IndexNumber = num ;
}
}
break ;
}
default :
base . FetchDataFromXmlNode ( reader , itemResult ) ;
break ;
}
}
}
}