From d50091f3a4085a0c684d6c08088689e8130cefcd Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 13 Nov 2012 08:27:48 -0800 Subject: [PATCH 1/3] Added Binder (full of Women) from int to qualityTypes --- NzbDrone.Web/Global.asax.cs | 5 ++++- NzbDrone.Web/NzbDrone.Web.csproj | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/NzbDrone.Web/Global.asax.cs b/NzbDrone.Web/Global.asax.cs index f9ff29cf9..4c4940fdd 100644 --- a/NzbDrone.Web/Global.asax.cs +++ b/NzbDrone.Web/Global.asax.cs @@ -13,6 +13,8 @@ using Ninject.Web.Mvc; using NLog; using NzbDrone.Common; using NzbDrone.Core; +using NzbDrone.Core.Repository.Quality; +using NzbDrone.Web.Helpers.Binders; namespace NzbDrone.Web { @@ -48,6 +50,8 @@ namespace NzbDrone.Web ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(razor); + ModelBinders.Binders.Add(typeof(QualityTypes), new QualityTypesBinder()); + RegisterGlobalFilters(GlobalFilters.Filters); Logger.Info("Fully initialized and ready."); @@ -63,7 +67,6 @@ namespace NzbDrone.Web return dispatch.Kernel; } - public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj index 5b4724237..8a0c7b4a3 100644 --- a/NzbDrone.Web/NzbDrone.Web.csproj +++ b/NzbDrone.Web/NzbDrone.Web.csproj @@ -154,6 +154,7 @@ + From 21ccdaa68b5ef8889822cc9328e34df4d21df8bb Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 13 Nov 2012 08:37:08 -0800 Subject: [PATCH 2/3] QualityType sizes are added automatically --- .../ProviderTests/QualityTypeProviderTest.cs | 6 +++--- NzbDrone.Core/Providers/QualityTypeProvider.cs | 18 ++++++------------ 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/NzbDrone.Core.Test/ProviderTests/QualityTypeProviderTest.cs b/NzbDrone.Core.Test/ProviderTests/QualityTypeProviderTest.cs index aa77d5911..6a76de3cd 100644 --- a/NzbDrone.Core.Test/ProviderTests/QualityTypeProviderTest.cs +++ b/NzbDrone.Core.Test/ProviderTests/QualityTypeProviderTest.cs @@ -17,7 +17,7 @@ namespace NzbDrone.Core.Test.ProviderTests public class QualityTypeProviderTest : CoreTest { [Test] - public void SetupDefault_should_add_six_profiles() + public void SetupDefault_should_add_all_profiles() { var db = TestDbHelper.GetEmptyDatabase(); @@ -33,8 +33,8 @@ namespace NzbDrone.Core.Test.ProviderTests types.Should().Contain(e => e.Name == "SDTV" && e.QualityTypeId == 1); types.Should().Contain(e => e.Name == "DVD" && e.QualityTypeId == 2); types.Should().Contain(e => e.Name == "HDTV" && e.QualityTypeId == 4); - types.Should().Contain(e => e.Name == "WEBDL720p" && e.QualityTypeId == 5); - types.Should().Contain(e => e.Name == "WEBDL1080p" && e.QualityTypeId == 3); + types.Should().Contain(e => e.Name == "WEBDL-720p" && e.QualityTypeId == 5); + types.Should().Contain(e => e.Name == "WEBDL-1080p" && e.QualityTypeId == 3); types.Should().Contain(e => e.Name == "Bluray720p" && e.QualityTypeId == 6); types.Should().Contain(e => e.Name == "Bluray1080p" && e.QualityTypeId == 7); } diff --git a/NzbDrone.Core/Providers/QualityTypeProvider.cs b/NzbDrone.Core/Providers/QualityTypeProvider.cs index bec9b7843..fba4d417c 100644 --- a/NzbDrone.Core/Providers/QualityTypeProvider.cs +++ b/NzbDrone.Core/Providers/QualityTypeProvider.cs @@ -58,21 +58,15 @@ namespace NzbDrone.Core.Providers Logger.Debug("Setting up default quality types"); - var qualityTypes = new List(); - qualityTypes.Add(new QualityType { QualityTypeId = 1, Name = "SDTV", MinSize = 0, MaxSize = 100 }); - qualityTypes.Add(new QualityType { QualityTypeId = 2, Name = "DVD", MinSize = 0, MaxSize = 100 }); - qualityTypes.Add(new QualityType { QualityTypeId = 4, Name = "HDTV", MinSize = 0, MaxSize = 100 }); - qualityTypes.Add(new QualityType { QualityTypeId = 5, Name = "WEBDL720p", MinSize = 0, MaxSize = 100 }); - qualityTypes.Add(new QualityType { QualityTypeId = 3, Name = "WEBDL1080p", MinSize = 0, MaxSize = 100 }); - qualityTypes.Add(new QualityType { QualityTypeId = 6, Name = "Bluray720p", MinSize = 0, MaxSize = 100 }); - qualityTypes.Add(new QualityType { QualityTypeId = 7, Name = "Bluray1080p", MinSize = 0, MaxSize = 100 }); - - foreach(var qualityType in qualityTypes) + foreach(var qualityType in QualityTypes.All()) { - var db = inDb.SingleOrDefault(s => s.QualityTypeId == qualityType.QualityTypeId); + //Skip UNKNOWN + if (qualityType.Id == 0) continue; + + var db = inDb.SingleOrDefault(s => s.QualityTypeId == qualityType.Id); if (db == null) - _database.Insert(qualityType); + _database.Insert(new QualityType { QualityTypeId = qualityType.Id, Name = qualityType.Name, MinSize = 0, MaxSize = 100 }); } } } From d50e31f9940d6dee8642f13488b719e0d2dbf706 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 13 Nov 2012 17:14:27 -0800 Subject: [PATCH 3/3] Binders full of women are no longer ignored --- .gitignore | 3 ++- .../Helpers/Binders/QualityTypesBinder.cs | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 NzbDrone.Web/Helpers/Binders/QualityTypesBinder.cs diff --git a/.gitignore b/.gitignore index e2f5da671..8b91b12fd 100644 --- a/.gitignore +++ b/.gitignore @@ -17,8 +17,9 @@ Thumbs.db *.cache *.ilk *.log -[Bb]in*/ +[Bb]in [Dd]ebug*/ +[Rrelease]*/ *.lib *.sbr *.nzb diff --git a/NzbDrone.Web/Helpers/Binders/QualityTypesBinder.cs b/NzbDrone.Web/Helpers/Binders/QualityTypesBinder.cs new file mode 100644 index 000000000..58ac0c7a7 --- /dev/null +++ b/NzbDrone.Web/Helpers/Binders/QualityTypesBinder.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; +using NzbDrone.Core.Repository.Quality; + +namespace NzbDrone.Web.Helpers.Binders +{ + public class QualityTypesBinder : IModelBinder + { + public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) + { + var value = bindingContext.ValueProvider.GetValue("quality"); + var quality = QualityTypes.FindById(Convert.ToInt32(value.AttemptedValue)); + + return quality; + } + } +} \ No newline at end of file