using FluentValidation; using NzbDrone.Core.Annotations; using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.Validation; namespace NzbDrone.Core.Notifications.Telegram { public class TelegramSettingsValidator : AbstractValidator { public TelegramSettingsValidator() { RuleFor(c => c.BotToken).NotEmpty(); RuleFor(c => c.ChatId).NotEmpty(); } } public class TelegramSettings : IProviderConfig { private static readonly TelegramSettingsValidator Validator = new TelegramSettingsValidator(); [FieldDefinition(0, Label = "Bot Token", HelpLink = "https://core.telegram.org/bots")] public string BotToken { get; set; } [FieldDefinition(1, Label = "Chat ID", HelpLink = "http://stackoverflow.com/a/37396871/882971", HelpText = "You must start a conversation with the bot or add it to your group to receive messages")] public string ChatId { get; set; } public bool IsValid => !string.IsNullOrWhiteSpace(ChatId) && !string.IsNullOrWhiteSpace(BotToken); public NzbDroneValidationResult Validate() { return new NzbDroneValidationResult(Validator.Validate(this)); } } }