Files
IM_NEW/MessageService.WebApi/Application/EventHandlers/UserProfileUpdateHandler.cs
T

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);
}
}
}