using System; using System.Linq; using NzbDrone.Core.Model.Notification; namespace NzbDrone.Core.Jobs { public interface IJob { /// <summary> /// Name of the timer. /// This is the name that will be visible in all UI elements /// </summary>\\\ string Name { get; } /// <summary> /// Default Interval that this job should run at. In seconds. /// </summary> /// <remarks>Setting this value to 0 means the job will not be /// executed by the schedule and is only triggered manually.</remarks> TimeSpan DefaultInterval { get; } /// <summary> /// Starts the job /// </summary> /// <param name="notification">Notification object that is passed in by JobProvider. /// this object should be used to update the progress on the UI</param> /// <param name="targetId">The that should be used to limit the target of this job</param> /// /// <param name="secondaryTargetId">The that should be used to limit the target of this job</param> void Start(ProgressNotification notification, dynamic options); } }