using System; using System.Collections.Generic; using FluentValidation.Results; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Metadata.Files; using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.Tv; namespace NzbDrone.Core.Metadata { public abstract class MetadataBase : IMetadata where TSettings : IProviderConfig, new() { public Type ConfigContract { get { return typeof(TSettings); } } public IEnumerable DefaultDefinitions { get { return new List(); } } public ProviderDefinition Definition { get; set; } public ValidationResult Test() { return new ValidationResult(); } public abstract List AfterRename(Series series, List existingMetadataFiles, List episodeFiles); public abstract MetadataFile FindMetadataFile(Series series, string path); public abstract MetadataFileResult SeriesMetadata(Series series); public abstract MetadataFileResult EpisodeMetadata(Series series, EpisodeFile episodeFile); public abstract List SeriesImages(Series series); public abstract List SeasonImages(Series series, Season season); public abstract List EpisodeImages(Series series, EpisodeFile episodeFile); protected TSettings Settings { get { return (TSettings)Definition.Settings; } } public override string ToString() { return GetType().Name; } } }