using MediaBrowser.Common.IO ;
using MediaBrowser.Controller.Configuration ;
using MediaBrowser.Controller.Entities.TV ;
using MediaBrowser.Controller.Library ;
using MediaBrowser.Controller.Providers ;
using MediaBrowser.Model.Entities ;
using MediaBrowser.Model.Logging ;
using MediaBrowser.Providers.Manager ;
using System.Collections.Generic ;
using CommonIO ;
namespace MediaBrowser.Providers.TV
{
public class EpisodeMetadataService : MetadataService < Episode , EpisodeInfo >
{
public EpisodeMetadataService ( IServerConfigurationManager serverConfigurationManager , ILogger logger , IProviderManager providerManager , IProviderRepository providerRepo , IFileSystem fileSystem , IUserDataManager userDataManager , ILibraryManager libraryManager ) : base ( serverConfigurationManager , logger , providerManager , providerRepo , fileSystem , userDataManager , libraryManager )
{
}
protected override void MergeData ( MetadataResult < Episode > source , MetadataResult < Episode > target , List < MetadataFields > lockedFields , bool replaceData , bool mergeMetadataSettings )
{
ProviderUtils . MergeBaseItemData ( source , target , lockedFields , replaceData , mergeMetadataSettings ) ;
var sourceItem = source . Item ;
var targetItem = target . Item ;
if ( replaceData | | ! targetItem . AirsBeforeSeasonNumber . HasValue )
{
targetItem . AirsBeforeSeasonNumber = sourceItem . AirsBeforeSeasonNumber ;
}
if ( replaceData | | ! targetItem . AirsAfterSeasonNumber . HasValue )
{
targetItem . AirsAfterSeasonNumber = sourceItem . AirsAfterSeasonNumber ;
}
if ( replaceData | | ! targetItem . AirsBeforeEpisodeNumber . HasValue )
{
targetItem . AirsBeforeEpisodeNumber = sourceItem . AirsBeforeEpisodeNumber ;
}
if ( replaceData | | ! targetItem . DvdSeasonNumber . HasValue )
{
targetItem . DvdSeasonNumber = sourceItem . DvdSeasonNumber ;
}
if ( replaceData | | ! targetItem . DvdEpisodeNumber . HasValue )
{
targetItem . DvdEpisodeNumber = sourceItem . DvdEpisodeNumber ;
}
if ( replaceData | | ! targetItem . AbsoluteEpisodeNumber . HasValue )
{
targetItem . AbsoluteEpisodeNumber = sourceItem . AbsoluteEpisodeNumber ;
}
if ( replaceData | | ! targetItem . IndexNumberEnd . HasValue )
{
targetItem . IndexNumberEnd = sourceItem . IndexNumberEnd ;
}
}
}
}