Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }