1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-12 11:15:43 +02:00
Sonarr/NzbDrone.Core/Model/Quality.cs

90 lines
2.0 KiB
C#
Raw Normal View History

2011-05-28 22:23:35 +03:00
using System;
using NzbDrone.Core.Repository.Quality;
namespace NzbDrone.Core.Model
{
public class Quality : IComparable<Quality>
{
public QualityTypes QualityType { get; set; }
public Boolean Proper { get; set; }
public Quality() { }
public Quality(QualityTypes quality, Boolean proper)
{
QualityType = quality;
Proper = proper;
}
public int CompareTo(Quality other)
{
2011-06-18 04:46:22 +03:00
if (other.QualityType > QualityType)
2011-05-28 22:23:35 +03:00
return -1;
2011-06-18 04:46:22 +03:00
if (other.QualityType < QualityType)
2011-05-28 22:23:35 +03:00
return 1;
2011-06-18 04:46:22 +03:00
if (other.QualityType == QualityType && other.Proper == Proper)
2011-05-28 22:23:35 +03:00
return 0;
2011-06-18 04:46:22 +03:00
if (Proper && !other.Proper)
2011-05-28 22:23:35 +03:00
return 1;
2011-06-18 04:46:22 +03:00
if (!Proper && other.Proper)
2011-05-28 22:23:35 +03:00
return -1;
return 0;
}
public static bool operator !=(Quality x, Quality y)
{
return !(x == y);
}
public static bool operator ==(Quality x, Quality y)
{
var xObj = (Object)x;
var yObj = (object)y;
if (xObj == null || yObj == null)
{
return xObj == yObj;
}
return x.CompareTo(y) == 0;
}
public static bool operator >(Quality x, Quality y)
{
return x.CompareTo(y) > 0;
}
public static bool operator <(Quality x, Quality y)
{
return x.CompareTo(y) < 1;
}
public static bool operator <=(Quality x, Quality y)
{
return x.CompareTo(y) <= 0;
}
public static bool operator >=(Quality x, Quality y)
{
return x.CompareTo(y) >= 0;
}
public override string ToString()
{
string result = QualityType.ToString();
if (Proper)
{
result += " [proper]";
}
return result;
}
}
}