using GroupService.Domain.IReposities; using GroupService.Infrastructure; using IM.Commons.IntegrationEvents; using MassTransit; namespace GroupService.WebApi.Application.EventHandler { public class UserProfileUpdateHandler : IConsumer { private readonly GroupDbContext db; private readonly IGroupMemberReposity memberReposity; public UserProfileUpdateHandler(GroupDbContext db, IGroupMemberReposity memberReposity) { this.db = db; this.memberReposity = memberReposity; } public async Task Consume(ConsumeContext context) { var @event = context.Message; var members = await memberReposity.FindByUserIdAsync(@event.UserId); foreach (var member in members) { member.UpdateAvatar(@event.Avatar); } await db.SaveChangesAsync(); } } }