31 lines
1.0 KiB
C#
31 lines
1.0 KiB
C#
using IM.Commons.IntegrationEvents;
|
|
using MassTransit;
|
|
using MessageService.Domain.IReposities;
|
|
using MessageService.Infrastructure;
|
|
|
|
namespace MessageService.WebApi.Application.EventHandlers
|
|
{
|
|
public class UserProfileUpdateHandler : IConsumer<UserProfileUpdateEvent>
|
|
{
|
|
private readonly MessageDbContext db;
|
|
private readonly IConversationReposity reposity;
|
|
|
|
public UserProfileUpdateHandler(MessageDbContext db, IConversationReposity reposity)
|
|
{
|
|
this.db = db;
|
|
this.reposity = reposity;
|
|
}
|
|
|
|
public async Task Consume(ConsumeContext<UserProfileUpdateEvent> context)
|
|
{
|
|
var @event = context.Message;
|
|
var conversations = await reposity.FindByTargetIdAsync(@event.UserId, context.CancellationToken);
|
|
foreach (var conversation in conversations)
|
|
{
|
|
conversation.UpdateProfile(@event.NickName, @event.Avatar);
|
|
}
|
|
await db.SaveChangesAsync(context.CancellationToken);
|
|
}
|
|
}
|
|
}
|