using IM.Commons.IntegrationEvents; using MassTransit; using MessageService.Domain.IReposities; using MessageService.Infrastructure; namespace MessageService.WebApi.Application.EventHandlers { public class ConversationAddHandler : IConsumer, IConsumer { private readonly IConversationReposity reposity; private readonly MessageDbContext messageDb; public ConversationAddHandler(IConversationReposity reposity, MessageDbContext messageDb) { this.reposity = reposity; this.messageDb = messageDb; } public async Task Consume(ConsumeContext context) { var @event = context.Message; reposity.Create(new Domain.Entities.Conversation( userId: @event.UserId, targetId: @event.GroupId, targetAvatar: @event.GroupAvatar ?? @event.Avatar, targetName: @event.GroupName, lastReadSequenceId: null, unreadCount:0, chatType: Domain.Enums.ChatType.GROUP, lastMessage: string.Empty )); await messageDb.SaveChangesAsync(); } public async Task Consume(ConsumeContext context) { var @event = context.Message; reposity.Create(new Domain.Entities.Conversation( userId: @event.OwnerId, targetId: @event.TargetId, targetAvatar: @event.TargetAvatar, targetName: @event.TargetNickName, lastReadSequenceId: null, unreadCount: 0, chatType: Domain.Enums.ChatType.PRIVATE, lastMessage: string.Empty )); await messageDb.SaveChangesAsync(); } } }