Exemplo n.º 1
0
 public CircleDeletedDomainEventHandler(
     IUserCircleRelationRepository userCircleRelationRepository,
     ILogger <CircleDeletedDomainEventHandler> logger)
 {
     _userCircleRelationRepository = userCircleRelationRepository ?? throw new ArgumentNullException(nameof(userCircleRelationRepository));
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
 }
 public ToppingCircleCommandHandler(IUserCircleRelationRepository userCircleRelationRepository,
                                    IHttpContextAccessor httpContextAccessor,
                                    ILogger <ToppingCircleCommandHandler> logger)
 {
     _userCircleRelationRepository = userCircleRelationRepository ?? throw new ArgumentNullException(nameof(userCircleRelationRepository));
     _httpContextAccessor          = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Exemplo n.º 3
0
 public AddCircleMemberCommandHandler(ICircleRepository circleRepository,
                                      IUserCircleRelationRepository userCircleRelationRepository,
                                      IHttpContextAccessor httpContextAccessor,
                                      IServiceProvider serviceProvider,
                                      ILogger <AddCircleMemberCommandHandler> logger)
 {
     _circleRepository             = circleRepository ?? throw new ArgumentNullException(nameof(circleRepository));
     _userCircleRelationRepository = userCircleRelationRepository ?? throw new ArgumentNullException(nameof(userCircleRelationRepository));
     _httpContextAccessor          = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));
     _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     _logger          = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Exemplo n.º 4
0
        /// <summary>
        /// 将用户加入圈子,使用静态方法是因为JoinCircleCommandHandler也需要加用户入圈
        /// </summary>
        /// <param name="circleId">圈子id</param>
        /// <param name="joinedUserId">要加入圈子的用户id</param>
        /// <param name="userCircleRelationRepository"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public static async Task <bool> AddCircleMemberAsync(Guid circleId, Guid joinedUserId,
                                                             IUserCircleRelationRepository userCircleRelationRepository, CancellationToken cancellationToken)
        {
            var userCircle = await userCircleRelationRepository.GetRelationAsync(circleId, joinedUserId);

            if (userCircle == null)
            {
                userCircle = new UserCircleRelation(joinedUserId, circleId);

                userCircle.Join();
                userCircleRelationRepository.Add(userCircle);

                return(await userCircleRelationRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken));
            }

            throw new ClientException("用户已在圈中", new List <string> {
                $"User {joinedUserId} is already in circle {circleId}"
            });
        }