mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-19 21:13:28 -07:00
Fixed notification issues
Added basic support for file scan Major redactor of ReportTitle/File parsing Updated Ninject/Ninject.MVC Removed dependency from Microsoft.Web.Administration reactored Episode repository structure
This commit is contained in:
parent
41d9b0364f
commit
c8a8fb4d62
57 changed files with 5569 additions and 320 deletions
77
NzbDrone.Core/Model/Notification/ProgressNotification.cs
Normal file
77
NzbDrone.Core/Model/Notification/ProgressNotification.cs
Normal file
|
@ -0,0 +1,77 @@
|
|||
using System;
|
||||
using NLog;
|
||||
|
||||
namespace NzbDrone.Core.Model.Notification
|
||||
{
|
||||
public class ProgressNotification : IDisposable
|
||||
{
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
public ProgressNotification(string title)
|
||||
{
|
||||
Title = title;
|
||||
CurrentStatus = String.Empty;
|
||||
Id = Guid.NewGuid();
|
||||
ProgressMax = 100;
|
||||
ProgressValue = 0;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the unique id.
|
||||
/// </summary>
|
||||
/// <value>The Id.</value>
|
||||
public Guid Id { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the title for this notification.
|
||||
/// </summary>
|
||||
/// <value>The title.</value>
|
||||
public String Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the current status of this task. this field could be use to show the currently processing item in a long running task.
|
||||
/// </summary>
|
||||
/// <value>The current status.</value>
|
||||
public String CurrentStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the completion status in percent.
|
||||
/// </summary>
|
||||
/// <value>The percent complete.</value>
|
||||
public int PercentComplete
|
||||
{
|
||||
get
|
||||
{
|
||||
return Convert.ToInt32(Convert.ToDouble(ProgressValue) / Convert.ToDouble(ProgressMax) * 100);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the total number of items that need to be completed
|
||||
/// </summary>
|
||||
/// <value>The progress max.</value>
|
||||
public int ProgressMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the number of items successfully completed.
|
||||
/// </summary>
|
||||
/// <value>The progress value.</value>
|
||||
public int ProgressValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the status.
|
||||
/// </summary>
|
||||
/// <value>The status.</value>
|
||||
public ProgressNotificationStatus Status { get; set; }
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (Status == ProgressNotificationStatus.InProgress)
|
||||
{
|
||||
Logger.Warn("Progress notification '{0}' was unexpectedly abandoned. ID:{1} Status:{2} CurrentStatus:{3} PercentComplete:{4}", Title, Id, Status, CurrentStatus, PercentComplete);
|
||||
Status = ProgressNotificationStatus.Failed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue