这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

50 lines
1.8 KiB

using LINGYUN.Platform.Messages;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events.Distributed;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Uow;
namespace LY.MicroService.Applications.Single.Messages;
public class MessageCreatedEventHandler :
IDistributedEventHandler<EntityCreatedEto<SmsMessageEto>>,
IDistributedEventHandler<EntityCreatedEto<EmailMessageEto>>,
ITransientDependency
{
private readonly ISmsMessageManager _smsMessageManager;
private readonly ISmsMessageRepository _smsMessageRepository;
private readonly IEmailMessageManager _emailMessageManager;
private readonly IEmailMessageRepository _emailMessageRepository;
public MessageCreatedEventHandler(
ISmsMessageManager smsMessageManager,
ISmsMessageRepository smsMessageRepository,
IEmailMessageManager emailMessageManager,
IEmailMessageRepository emailMessageRepository)
{
_smsMessageManager = smsMessageManager;
_smsMessageRepository = smsMessageRepository;
_emailMessageManager = emailMessageManager;
_emailMessageRepository = emailMessageRepository;
}
[UnitOfWork]
public async virtual Task HandleEventAsync(EntityCreatedEto<SmsMessageEto> eventData)
{
var smsMessage = await _smsMessageRepository.GetAsync(eventData.Entity.Id);
smsMessage = await _smsMessageManager.SendAsync(smsMessage);
await _smsMessageRepository.UpdateAsync(smsMessage);
}
[UnitOfWork]
public async virtual Task HandleEventAsync(EntityCreatedEto<EmailMessageEto> eventData)
{
var emailMessage = await _emailMessageRepository.GetAsync(eventData.Entity.Id);
emailMessage = await _emailMessageManager.SendAsync(emailMessage);
await _emailMessageRepository.UpdateAsync(emailMessage);
}
}