using FluentValidation; using NzbDrone.Core.Annotations; using NzbDrone.Core.Validation; namespace NzbDrone.Core.Notifications.Simplepush { public class SimplepushSettingsValidator : AbstractValidator { public SimplepushSettingsValidator() { RuleFor(c => c.Key).NotEmpty(); } } public class SimplepushSettings : NotificationSettingsBase { private static readonly SimplepushSettingsValidator Validator = new (); [FieldDefinition(0, Label = "NotificationsSimplepushSettingsKey", Privacy = PrivacyLevel.ApiKey, HelpLink = "https://simplepush.io/features")] public string Key { get; set; } [FieldDefinition(1, Label = "NotificationsSimplepushSettingsEvent", HelpText = "NotificationsSimplepushSettingsEventHelpText", HelpLink = "https://simplepush.io/features")] public string Event { get; set; } public bool IsValid => !string.IsNullOrWhiteSpace(Key); public override NzbDroneValidationResult Validate() { return new NzbDroneValidationResult(Validator.Validate(this)); } } }