public async Task CreateRecommendFromProject(ProjectCreatedIntegraitionEvent @event) { var fromUser = await _userService.GetBaseUserInfoAsync(@event.UserId); var contacts = await _contactService.GetContactsByUserId(@event.UserId); var recommends = contacts.Select(c => new ProjectRecommend { FromUserId = @event.UserId, Company = @event.Company, Tags = @event.Tags, ProjectId = @event.ProjectId, ProjectAvatar = @event.ProjectAvatar, FinStage = @event.FinStage, RecommendTime = DateTime.Now, CreateTime = @event.CreatedTime, Introduction = @event.Introduction, RecommendType = EnumRecommendType.Friend, FromUserAvatar = fromUser.Avatar, FromUserName = fromUser.Name, UserId = c.UserId }); await _context.ProjectRecommends.AddRangeAsync(recommends); await _context.SaveChangesAsync(); }
public async Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken) { var @event = new ProjectCreatedIntegraitionEvent { CreatedTime = DateTime.Now, ProjectId = notification.Project.Id, UserId = notification.Project.UserId, Company = notification.Project.Company, FinStage = notification.Project.FinStage, Introduction = notification.Project.Introduction, ProjectAvatar = notification.Project.Avatar, Tags = notification.Project.Tags }; await _capPublisher.PublishAsync("finbook.projectapi.projectcreated", @event); }