Lidarr/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownload.cs

51 lines
1.4 KiB
C#

using NzbDrone.Core.Indexers;
using NzbDrone.Core.Parser.Model;
namespace NzbDrone.Core.Download.TrackedDownloads
{
public class TrackedDownload
{
public int DownloadClient { get; set; }
public DownloadClientItem DownloadItem { get; set; }
public TrackedDownloadStage State { get; set; }
public TrackedDownloadStatus Status { get; private set; }
public RemoteAlbum RemoteAlbum { get; set; }
public TrackedDownloadStatusMessage[] StatusMessages { get; private set; }
public DownloadProtocol Protocol { get; set; }
public string Indexer { get; set; }
public bool IsTrackable { get; set; }
public TrackedDownload()
{
StatusMessages = new TrackedDownloadStatusMessage[] {};
}
public void Warn(string message, params object[] args)
{
var statusMessage = string.Format(message, args);
Warn(new TrackedDownloadStatusMessage(DownloadItem.Title, statusMessage));
}
public void Warn(params TrackedDownloadStatusMessage[] statusMessages)
{
Status = TrackedDownloadStatus.Warning;
StatusMessages = statusMessages;
}
}
public enum TrackedDownloadStage
{
Downloading,
DownloadFailed,
Importing,
ImportFailed,
Imported
}
public enum TrackedDownloadStatus
{
Ok,
Warning
}
}