Files
btcpayserver/BTCPayServer/Plugins/Emails/DefaultServerEmailRulesMigration.cs
2025-11-10 17:24:27 +09:00

38 lines
1.3 KiB
C#

using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using BTCPayServer.Data;
using BTCPayServer.Plugins.Emails.Views;
namespace BTCPayServer.Plugins.Emails;
public class DefaultServerEmailRulesMigration(IEnumerable<EmailTriggerViewModel> vms) : MigrationBase<ApplicationDbContext>("20251109_defaultserverrules")
{
public override Task MigrateAsync(ApplicationDbContext dbContext, CancellationToken cancellationToken)
{
var defaultRules = new string[] {
ServerMailTriggers.PasswordReset,
ServerMailTriggers.InvitePending,
ServerMailTriggers.ApprovalConfirmed,
ServerMailTriggers.ApprovalPending,
ServerMailTriggers.EmailConfirm,
ServerMailTriggers.ApprovalRequest,
ServerMailTriggers.InviteConfirmed
}.ToHashSet();
foreach (var vm in vms.Where(v => defaultRules.Contains(v.Trigger)))
{
dbContext.EmailRules.Add(new()
{
To = vm.DefaultEmail.To,
CC = vm.DefaultEmail.CC,
BCC = vm.DefaultEmail.BCC,
Trigger = vm.Trigger,
Subject = vm.DefaultEmail.Subject,
Body = vm.DefaultEmail.Body,
});
}
return Task.CompletedTask;
}
}