From 56f6b923e1bf955efe0cb014bdc9aa44636f46b1 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 26 Nov 2017 21:43:17 -0500 Subject: [PATCH] Fixed: Add metadata profile exists validator --- src/Lidarr.Api.V1/Artist/ArtistModule.cs | 7 +++--- src/NzbDrone.Core/NzbDrone.Core.csproj | 1 + .../MetadataProfileExistsValidator.cs | 23 +++++++++++++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 src/NzbDrone.Core/Validation/MetadataProfileExistsValidator.cs diff --git a/src/Lidarr.Api.V1/Artist/ArtistModule.cs b/src/Lidarr.Api.V1/Artist/ArtistModule.cs index 44d8fa173..3b9267d46 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistModule.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistModule.cs @@ -35,20 +35,19 @@ public class ArtistModule : LidarrRestModuleWithSignalR s.QualityProfileId).SetValidator(profileExistsValidator); SharedValidator.RuleFor(s => s.LanguageProfileId).SetValidator(languageProfileExistsValidator); + SharedValidator.RuleFor(s => s.MetadataProfileId).SetValidator(metadataProfileExistsValidator); PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace()); PostValidator.RuleFor(s => s.RootFolderPath).IsValidPath().When(s => s.Path.IsNullOrWhiteSpace()); diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index f9ad93dc4..a1670af00 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -1069,6 +1069,7 @@ + diff --git a/src/NzbDrone.Core/Validation/MetadataProfileExistsValidator.cs b/src/NzbDrone.Core/Validation/MetadataProfileExistsValidator.cs new file mode 100644 index 000000000..82499a304 --- /dev/null +++ b/src/NzbDrone.Core/Validation/MetadataProfileExistsValidator.cs @@ -0,0 +1,23 @@ +using FluentValidation.Validators; +using NzbDrone.Core.Profiles.Metadata; + +namespace NzbDrone.Core.Validation +{ + public class MetadataProfileExistsValidator : PropertyValidator + { + private readonly IMetadataProfileService _profileService; + + public MetadataProfileExistsValidator(IMetadataProfileService profileService) + : base("Metadata profile does not exist") + { + _profileService = profileService; + } + + protected override bool IsValid(PropertyValidatorContext context) + { + if (context.PropertyValue == null) return true; + + return _profileService.Exists((int)context.PropertyValue); + } + } +}