using BTCPayServer.Abstractions.Contracts; using Microsoft.Extensions.Localization; namespace BTCPayServer.Services.Notifications.Blobs { internal class NewVersionNotification : BaseNotification { private const string TYPE = "newversion"; internal class Handler(IStringLocalizer stringLocalizer) : NotificationHandler { private IStringLocalizer StringLocalizer { get; } = stringLocalizer; public override string NotificationType => TYPE; public override (string identifier, string name)[] Meta { get { return [(TYPE, StringLocalizer["New version"])]; } } protected override void FillViewModel(NewVersionNotification notification, NotificationViewModel vm) { vm.Identifier = notification.Identifier; vm.Type = notification.NotificationType; vm.Body = StringLocalizer["New version {0} released!", notification.Version]; vm.ActionLink = $"https://github.com/btcpayserver/btcpayserver/releases/tag/v{notification.Version}"; } } public NewVersionNotification() { } public NewVersionNotification(string version) { Version = version; } public string Version { get; set; } public override string Identifier => TYPE; public override string NotificationType => TYPE; } }