Beispiel #1
0
        public async Task <CommandResponse> Handle(CreatedFollowerCommand request, CancellationToken cancellationToken)
        {
            var aggregate = await _followerRepository.Find(request.FollowerId);

            var otherAggregate = await _followerRepository.Find(request.FollowedId);

            var followed = aggregate.Follow(otherAggregate);
            var success  = await _followerRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);

            return(new CommandResponse
            {
                Success = success && followed
            });
        }
        public async Task ConsumeAsync(UpdatedUserDisplayNameIntegrationEvent message,
                                       CancellationToken cancellationToken = new CancellationToken())
        {
            var aggregate = await _followerRepository.Find(message.UserId);

            aggregate.SetDisplayName(message.DisplayName);
            bool success = await _followerRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);

            if (!success)
            {
                throw new Exception("Failed to update user display name");
            }
        }