public async Task CreateRecommendServiceFromProject(ProjectCreatedIntegrationEvent @event)
        {
            var fromUser = await _userService.GetBaseUserInfoAsync(@event.UserId);

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

            foreach (var item in contacts)
            {
                var recommend = new ProjectRecommend
                {
                    FromUserId      = @event.UserId,
                    Company         = @event.Company,
                    Tags            = @event.Tags,
                    ProjectId       = @event.ProjectId,
                    ProjectAvatar   = @event.ProjectAvatar,
                    FinancingStage  = @event.FinancingStage,
                    RecommendedTime = DateTime.Now,
                    CreatedTime     = @event.CreatedTime,
                    Introduction    = @event.Introduction,
                    RecommendType   = 1,
                    FromUserAvatar  = fromUser.Avatar,
                    FromUserName    = fromUser.Name,
                    UserId          = item.UserId
                };
                await _recommendContext.ProjectRecommends.AddAsync(recommend);
            }
            await _recommendContext.SaveChangesAsync();
        }
        public async Task CreatedRecommendFromProject(ProjectCreatedIntegrationEvent @event)
        {
            var fromUser = await _userService.GetBaseUserInfoAsync(@event.UserId);

            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,
                    CreatedTime    = @event.CreateTime,
                    Introduction   = @event.Introduction,
                    RecommendType  = EnumRecommendType.Friend,
                    FromUserAvatar = fromUser.Avatar,
                    FromUserName   = fromUser.Name,
                    UserId         = contact.UserId,
                };
                _context.ProjectRecommends.Add(recommend);
            }
            _context.SaveChanges();
        }
        // [CapSubscribe ("finbook.projectapi.projectJoined")]
        // [CapSubscribe ("finbook.projectapi.projectviewed")]
        public async Task CreateRecommendFromProject(ProjectCreatedIntegrationEvent @events)
        {
            //获取用户服务,获取创建项目的用户信息
            var fromUser = await userService.GetBaseUserInfoAsync(@events.UserId);

            //获取联系人服务的用户通讯录信息
            var contacs = await contactService.GetContactsByUserId(@events.UserId);

            //遍历通讯录发布创建项目通知
            foreach (var contact in contacs)
            {
                //项目的推送消息
                var recommend = new ProjectRecommend {
                    FromUserId     = @events.UserId,
                    Company        = @events.Company,
                    Tags           = @events.Tags,
                    ProjectId      = @events.ProjectId,
                    ProjectAvatar  = @events.ProjectAvatar,
                    FinStage       = @events.FinStage,
                    RecommendTime  = DateTime.Now,
                    CreateTime     = @events.CreatedTime,
                    Introduction   = @events.Introduction,
                    RecommendType  = EnumRecommendType.Friend,
                    FromUserAvatar = fromUser.Avatar,
                    FromUserName   = fromUser.Name,
                    UserId         = contact.UserId
                };
                dbContext.Recommends.Add(recommend);
            }
            await dbContext.SaveChangesAsync();
        }
Ejemplo n.º 4
0
        public async Task <bool> CreateRecommendFromProject(ProjectCreatedIntegrationEvent @event)
        {
            var fromUserInfo = await _userService.GetUserInfoAsync(@event.UserId);

            var contactsInfo = await _contactService.GetContactInfoByUser(@event.UserId);

            //添加一度好友的推荐
            foreach (var contactInfo in contactsInfo)
            {
                var recommend = new ProjectRecommend
                {
                    CreateTime          = @event.CreateTime,
                    ProjectAvatar       = @event.Avatar,
                    ProjectCompany      = @event.Company,
                    ProjectFinStage     = @event.FinStage,
                    ProjectId           = @event.ProjectId,
                    ProjectIntroduction = @event.Introduction,
                    ProjectTags         = @event.Tags,
                    RecommendTime       = DateTime.Now,
                    RecommendType       = EnumRecommendType.Friend,
                    FromUserId          = @event.UserId,
                    FromUserAvatar      = fromUserInfo.Avatar,
                    FromUserName        = fromUserInfo.Name,
                    UserId = contactInfo.UserId
                };

                await _context.ProjectRecommends.AddAsync(recommend);
            }

            await _context.SaveChangesAsync();

            return(true);
        }
Ejemplo n.º 5
0
        public Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
        {
            var @event = new ProjectCreatedIntegrationEvent {
                ProjectId = notification.Project.Id, UserId = notification.Project.UserId, CreatedTime = DateTime.Now
            };

            _capPublisher.Publish("findbook.projectapi.projectcreated ", @event);
            return(Task.CompletedTask);
        }
Ejemplo n.º 6
0
 public async Task Handle(ProjecCreatedtEvent notification, CancellationToken cancellationToken)
 {
     var @event = new ProjectCreatedIntegrationEvent
     {
         ProjectId   = notification.Project.Id,
         UserId      = notification.Project.UserId,
         CreatedTime = notification.Project.CreatedTime
     };
     await _capPublisher.PublishAsync("project.api.create.project", @event, cancellationToken : cancellationToken);
 }
Ejemplo n.º 7
0
        public Task CreateRecommendFromProject(ProjectCreatedIntegrationEvent @event)
        {
            var recommend = new ProjectRecommend()
            {
                UserId    = @event.UserId,
                ProjectId = @event.ProjectId
            };

            return(Task.CompletedTask);
        }
        public Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
        {
            var @event = new ProjectCreatedIntegrationEvent()
            {
                UserId      = notification.UserId,
                CreatedTime = DateTime.Now,
                ProjectId   = notification.Id
            };

            _capPublisher.Publish("cap.test.queue", @event);
            return(Task.CompletedTask);
        }
Ejemplo n.º 9
0
 public async Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
 {
     var @event = new ProjectCreatedIntegrationEvent {
         ProjectId      = notification.Project.Id,
         CreatedTime    = DateTime.Now,
         UserId         = notification.Project.UserId,
         Company        = notification.Project.Company,
         FinancingStage = notification.Project.FinancingStage,
         Introduction   = notification.Project.Introduction,
         ProjectAvatar  = notification.Project.Avatar,
         Tags           = notification.Project.Tags
     };
     await _capPublisher.PublishAsync("projectApi.project_created", @event);
 }
Ejemplo n.º 10
0
        /// <summary>
        /// 将领域事件转成集成事件
        /// </summary>
        /// <param name="notification"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task Handle(ProjectCreatedDomainEvent notification, CancellationToken cancellationToken)
        {
            var integrationEvent = new ProjectCreatedIntegrationEvent()
            {
                ProjectId    = notification.Project.Id,
                Company      = notification.Project.Company,
                Avatar       = notification.Project.Avatar,
                FromUserId   = notification.Project.UserId,
                Introduction = notification.Project.Introduction,
                FinStage     = notification.Project.FinStage,
                Tags         = notification.Project.Tags,
            };

            await _projectIntegrationEventService.PublishThroughEventBusAsync(integrationEvent);
        }
Ejemplo n.º 11
0
 public async Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
 {
     var projectCreatedIntegrationEvent = new ProjectCreatedIntegrationEvent()
     {
         ProjectId     = notification.Project.Id,
         Company       = notification.Project.Company,
         Finstage      = notification.Project.FinStage,
         Introduction  = notification.Project.Introduction,
         ProjectAvatar = notification.Project.Avator,
         Tags          = notification.Project.Tags,
         CreateTime    = DateTime.Now,
         UserId        = notification.Project.UserId
     };
     await _capPublisher.PublishAsync("pomelobutter.projectCreate", projectCreatedIntegrationEvent);
 }
        /// <summary>
        /// CAP发送事件到EventBus
        /// </summary>
        /// <param name="notification">领域事件</param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
        {
            var @event = new ProjectCreatedIntegrationEvent {
                ProjectId     = notification.Project.Id,
                Company       = notification.Project.Company,
                FinStage      = notification.Project.FinStage,
                Tags          = notification.Project.Tags,
                Introduction  = notification.Project.Introduction,
                ProjectAvatar = notification.Project.Avatar,
                CreatedTime   = DateTime.Now,
                UserId        = notification.Project.UserId
            };

            capPublisher.Publish("finbook.projectapi.projectcreated", @event);
            return(Task.CompletedTask);
        }
        public async Task Handle(ProjectCreatedEvent notification, CancellationToken cancellationToken)
        {
            var @event = new ProjectCreatedIntegrationEvent
            {
                UserId       = notification.Project.UserId,
                ProjectId    = notification.Project.Id,
                Avatar       = notification.Project.Avatar,
                Company      = notification.Project.Company,
                FinStage     = notification.Project.FinStage,
                Introduction = notification.Project.Introduction,
                Tags         = notification.Project.Tags,
                CreateTime   = DateTime.Now
            };

            await _capPublisher.PublishAsync("zsq.onlinePrject.projectapi.projectcreated", @event);

            return;
        }
Ejemplo n.º 14
0
        public async Task CreatRecommendFromProject(ProjectCreatedIntegrationEvent @event)
        {
            var fromUser = await _userService.GetBaseUserInfoAsync(@event.UserId);

            var recommend = new ProjectRecommend()
            {
                Company        = @event.Company,
                CreateTime     = @event.CreateTime,
                ProjectId      = @event.ProjectId,
                Introduction   = @event.Introduction,
                RecommendTime  = DateTime.Now,
                RecommendType  = EnumRecommendType.Friend,
                UserId         = @event.UserId,
                FromUserAvatar = fromUser.Avatar,
                FromUserName   = fromUser.Name
            };

            _context.ProjectRecommends.Add(recommend);
            _context.SaveChanges();
        }
 public void CreateRecommendFromProject(ProjectCreatedIntegrationEvent @event)
 {
     Console.WriteLine($"ProjectId:{@event.ProjectId},UserId:{@event.UserId}");
 }