Exemplo n.º 1
0
        public async Task Process(ProjectCreatedIntergrationEvent @event)
        {
            var info = await _userService.GetBaseUserInfoAsync(@event.UserId);

            var contacts = await _contactService.GetContactListByUserIdAsync(@event.UserId);

            if (info != null && contacts.Any())
            {
                foreach (var contact in contacts)
                {
                    var projectRecommand = new ProjectReCommand()
                    {
                        FromUserId        = @event.UserId,
                        Company           = @event.Company,
                        ProjectId         = @event.ProjectId,
                        Introduction      = @event.Introduction,
                        FromUserAvator    = info.Avatar,
                        EnumReCommandType = EnumReCommandType.Friend,
                        FromUserName      = info.Name,
                        CreateTime        = @event.CreationDate,
                        ReCommandTime     = DateTime.Now,
                        UserId            = contact.UserId
                    };
                    await _dbContext.ProjectReCommands.AddAsync(projectRecommand);
                }
                await _dbContext.SaveChangesAsync();
            }
        }
        public async Task CreateRecommendFromProject(ProjectCreatedIntergrationEvent @event)
        {
            var fromUser = await _userService.GetBaseUserInfoAsync(@event.UserId, CancellationToken.None);

            var contacts = await _contactService.GetContactsByUserId(@event.UserId);

            foreach (var contact in contacts)
            {
                var recommend = 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.CreateTime,
                    Introduction   = @event.Introduction,
                    RecommednType  = EnumRecommendType.Friend,
                    FromUserAvatar = fromUser.Avatar,
                    FromUserName   = fromUser.Name,
                    UserId         = contact.UserId,
                };

                _context.ProjectRecommends.Add(recommend);
            }

            _logger.LogTrace($"finbook.projectapi.projectcreated 接收成功!");
            _context.SaveChanges();
        }
Exemplo n.º 3
0
        public async Task CreateRecommendFromProjectAsync(ProjectCreatedIntergrationEvent @event)
        {
            //调用UserApi 服务,获取项目创建人信息
            var userinfo = await _userService.GetBaseUserInfoAsync(@event.UserId);

            //调用ContactApi 获取项目创建者的 好友信息
            var friendIds = await _contactService.GetContactsByUserIdAsync(@event.UserId);


            foreach (var item in friendIds)
            {
                var recommend = new ProjectRecommend
                {
                    FromUserId     = @event.UserId,
                    Company        = @event.Company,
                    Tags           = @event.Tags,
                    ProjectId      = @event.ProjectId,
                    FinStage       = @event.FinStage,
                    ProjectAvatar  = @event.ProjectAvatar,
                    CreatedTime    = @event.CreatedTime,
                    Introducation  = @event.Introducation,
                    RecommendType  = EnumRecommendType.Friend,
                    RecommendTime  = DateTime.Now,
                    FromUserAvatar = userinfo.Avatar,
                    FromUserName   = userinfo.Name,
                    UserId         = item.UserId
                };

                _dbContext.ProjectRecommends.Add(recommend);
            }
            await _dbContext.SaveChangesAsync();
        }
Exemplo n.º 4
0
 public async Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
 {
     var @event = new ProjectCreatedIntergrationEvent()
     {
         Company      = notification.Project.Company,
         ProjectId    = notification.Project.Id,
         UserId       = notification.Project.UserId,
         Introduction = notification.Project.Introduction
     };
     await _capPublisher.PublishAsync("projectapi.projectcreated", @event);
 }
Exemplo n.º 5
0
        public Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
        {
            var @event = new ProjectCreatedIntergrationEvent {
                CreateTime    = DateTime.Now,
                Company       = notification.Project.Company,
                FinStage      = notification.Project.FinStage,
                Introduction  = notification.Project.Introduction,
                ProjectAvatar = notification.Project.Avatar,
                Tags          = notification.Project.Tags,
                ProjectId     = notification.Project.Id,
                UserId        = notification.Project.UserId
            };

            _capPublisher.Publish("finbook.projectapi.projectcreated", @event);
            return(Task.CompletedTask);
        }
Exemplo n.º 6
0
        public async Task CreateRecommendFromProject(ProjectCreatedIntergrationEvent @event)
        {
            try
            {
                //获取fromuser 信息 使用consul 服务发现 找到User 服务地址,获取用户基本信息
                var fromUser = await _userService.GetBaseUserInfoAsync(@event.UserId);

                if (fromUser == null)
                {
                    //TBD 记录没有获取到指定userId的用户信息
                }
                //使用通讯录查找所有好友,给这些好友添加 推荐记录
                var contacts = await _contactService.GetContactsByUserId(@event.UserId);

                foreach (var contact in contacts)
                {
                    //通过 Event传入项目的用户id,及项目其他基本信息
                    ProjectRecommend recommend = new ProjectRecommend
                    {
                        Company        = @event.Company,
                        FinStage       = @event.Company,
                        Tags           = @event.Tags,
                        RecommendTime  = DateTime.Now,
                        CreateTime     = @event.CreateTime,
                        FromUserId     = @event.UserId,
                        Introduction   = @event.Introduction,
                        ProjectAvatar  = @event.ProjectAvatar,
                        ProjectId      = @event.ProjectId,
                        FromUserAvatar = fromUser.Avatar,
                        FromUserName   = fromUser.Name,
                        RecommednType  = EnumRecommendType.Friend,
                        UserId         = contact.UserId
                    };
                    _context.ProjectRecommends.Add(recommend);
                }
                _context.SaveChanges();
            }
            catch (Exception ex)
            { }
            // Task.CompletedTask;
        }
 public async Task CreateRecommendFromProject(ProjectCreatedIntergrationEvent @event)
 {
     await Task.CompletedTask;
 }