server-master/srcs/MailServer/Consumers/NoteCharacterConnectedMessageConsumer.cs
2026-02-10 18:21:30 +01:00

34 lines
No EOL
1.3 KiB
C#

using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using PhoenixLib.ServiceBus;
using WingsEmu.DTOs.Mails;
using WingsEmu.Plugins.DistributedGameEvents.Mails;
using WingsEmu.Plugins.DistributedGameEvents.PlayerEvents;
namespace MailServer.Consumers
{
public class NoteCharacterConnectedMessageConsumer : IMessageConsumer<PlayerConnectedOnChannelMessage>
{
private readonly ICharacterNoteDao _characterNoteDao;
private readonly IMessagePublisher<NoteReceivePendingOnConnectedMessage> _publisher;
public NoteCharacterConnectedMessageConsumer(IMessagePublisher<NoteReceivePendingOnConnectedMessage> publisher, ICharacterNoteDao characterNoteDao)
{
_publisher = publisher;
_characterNoteDao = characterNoteDao;
}
public async Task HandleAsync(PlayerConnectedOnChannelMessage e, CancellationToken cancellation)
{
long characterId = e.CharacterId;
List<CharacterNoteDto> notes = await _characterNoteDao.GetByCharacterIdAsync(characterId);
await _publisher.PublishAsync(new NoteReceivePendingOnConnectedMessage
{
CharacterId = characterId,
Notes = notes
});
}
}
}