using NetAdmin.Domain.Dto.Sys.VerifyCode; using NetAdmin.Domain.Enums.Sys; using NetAdmin.Domain.Events.Sys; using NetAdmin.SysComponent.Application.Services.Sys.Dependency; namespace NetAdmin.SysComponent.Host.Subscribers; /// /// 邮件验证码发送器 /// public sealed class EmailCodeSender(ILogger logger) : IEventSubscriber { /// /// 发送邮件 /// [EventSubscribe(nameof(VerifyCodeCreatedEvent))] public async Task SendEmailAsync(EventHandlerExecutingContext context) { if (context.Source is not VerifyCodeCreatedEvent verifyCodeCreatedEvent || verifyCodeCreatedEvent.Data.DeviceType != VerifyCodeDeviceTypes.Email) { return; } // 发送... var verifyCodeService = App.GetService(); _ = await verifyCodeService.UpdateAsync( verifyCodeCreatedEvent.Data.Adapt() with { Status = VerifyCodeStatues.Sent }); logger.Info($"{nameof(IVerifyCodeService)}.{nameof(IVerifyCodeService.UpdateAsync)} {Ln.已完成}"); } }