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.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 }); } } } diff --git a/NzbDrone.Web/Global.asax.cs b/NzbDrone.Web/Global.asax.cs index c957d26e1..fbb12f82c 100644 --- a/NzbDrone.Web/Global.asax.cs +++ b/NzbDrone.Web/Global.asax.cs @@ -16,6 +16,8 @@ using NzbDrone.Common; using NzbDrone.Core; using ServiceStack.CacheAccess; using ServiceStack.CacheAccess.Providers; +using NzbDrone.Core.Repository.Quality; +using NzbDrone.Web.Helpers.Binders; using ServiceStack.ServiceInterface; namespace NzbDrone.Web @@ -54,6 +56,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."); 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 diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj index a2b7814a0..4e1dfc4d3 100644 --- a/NzbDrone.Web/NzbDrone.Web.csproj +++ b/NzbDrone.Web/NzbDrone.Web.csproj @@ -199,6 +199,7 @@ +