diff --git a/NzbDrone.Core/Repository/Quality/QualityTypes.cs b/NzbDrone.Core/Repository/Quality/QualityTypes.cs index 161461477..6170adc66 100644 --- a/NzbDrone.Core/Repository/Quality/QualityTypes.cs +++ b/NzbDrone.Core/Repository/Quality/QualityTypes.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Linq; namespace NzbDrone.Core.Repository.Quality { @@ -98,17 +100,28 @@ public override bool Equals(object obj) public static QualityTypes Bluray720p = new QualityTypes { Id = 6, Name = "Bluray720p", Weight = 6 }; public static QualityTypes Bluray1080p = new QualityTypes { Id = 7, Name = "Bluray1080p", Weight = 7 }; + public static List All() + { + return new List + { + Unknown, + SDTV, + DVD, + HDTV, + WEBDL, + Bluray720p, + Bluray1080p + }; + } + public static QualityTypes FindById(int id) { - if (id == 0) return Unknown; - if (id == 1) return SDTV; - if (id == 2) return DVD; - if (id == 4) return HDTV; - if (id == 5) return WEBDL; - if (id == 6) return Bluray720p; - if (id == 7) return Bluray1080p; + var quality = All().SingleOrDefault(q => q.Id == id); - throw new ArgumentException("ID does not match a known quality", "id"); + if (quality == null) + throw new ArgumentException("ID does not match a known quality", "id"); + + return quality; } public static explicit operator QualityTypes(int id) diff --git a/NzbDrone.Web/Controllers/SeriesController.cs b/NzbDrone.Web/Controllers/SeriesController.cs index 9987eeec7..6fdf92ed7 100644 --- a/NzbDrone.Web/Controllers/SeriesController.cs +++ b/NzbDrone.Web/Controllers/SeriesController.cs @@ -136,8 +136,7 @@ public ActionResult Details(int seriesId) }).ToList(); model.Seasons = seasons; - var qualities = (from QualityTypes q in Enum.GetValues(typeof(QualityTypes)) - select new { Id = (int)q, Name = q.ToString() }).ToList(); + var qualities = QualityTypes.All().ToList(); model.QualitySelectList = new SelectList(qualities.Where(q => q.Id > 0), "Id", "Name");