Files
NetAdmin/src/backend/NetAdmin.SysComponent.Host/Subscribers/EmailCodeSender.cs
tk d26e4c77cc feat: 基础模块
注册登录
用户管理
角色管理
部门管理
消息管理
接口管理
菜单管理
字典管理
缓存管理
请求日志
系统设置
版本信息
代码生成
2023-11-17 19:12:47 +08:00

30 lines
1.1 KiB
C#

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;
/// <summary>
/// 邮件验证码发送器
/// </summary>
public sealed class EmailCodeSender(ILogger<EmailCodeSender> logger) : IEventSubscriber
{
/// <summary>
/// 发送邮件
/// </summary>
[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<IVerifyCodeService>();
_ = await verifyCodeService.UpdateAsync(
verifyCodeCreatedEvent.Data.Adapt<UpdateVerifyCodeReq>() with { Status = VerifyCodeStatues.Sent });
logger.Info($"{nameof(IVerifyCodeService)}.{nameof(IVerifyCodeService.UpdateAsync)} {Ln.已完成}");
}
}