using NLog; using NzbDrone.Core.Tv; using NzbDrone.Core.Providers.Core; using NzbDrone.Core.Repository; namespace NzbDrone.Core.Providers.ExternalNotification { public abstract class ExternalNotificationBase { protected readonly Logger _logger; protected readonly ConfigProvider _configProvider; protected ExternalNotificationBase(ConfigProvider configProvider) { _configProvider = configProvider; _logger = LogManager.GetLogger(GetType().ToString()); } /// /// Gets the name for the notification provider /// public abstract string Name { get; } /// /// Performs the on grab action /// /// The message to send to the receiver public abstract void OnGrab(string message); /// /// Performs the on download action /// /// The message to send to the receiver /// The Series for the new download public abstract void OnDownload(string message, Series series); /// /// Performs the on rename action /// /// The message to send to the receiver /// The Series for the new download public abstract void OnRename(string message, Series series); /// /// Performs the after rename action, this will be handled after all renaming for episode/season/series /// /// The message to send to the receiver /// The Series for the new download public abstract void AfterRename(string message, Series series); } }