コード例 #1
0
 public FriendshipRequestCommandHandler(IFriendshipRequestRepository friendshipRequestRepository, IProfileRepository profileRepository, IProfileDomainService profileDomainService, IIdentityService identityService, IMediator mediator, IUnitOfWork <ICommunityDbContext> unitOfWork, ILogger <FriendshipRequestCommandHandler> logger)
     : base(identityService, mediator, unitOfWork, logger)
 {
     _friendshipRequestRepository = friendshipRequestRepository;
     _profileRepository           = profileRepository;
     _profileDomainService        = profileDomainService;
     _currentProfileId            = GetCurrentProfileId();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="NotifyUserOnFriendshipRequestSentIntegrationEventHandler"/> class.
 /// </summary>
 /// <param name="friendshipRequestRepository">The friendship request repository.</param>
 /// <param name="userRepository">The user repository.</param>
 /// <param name="emailNotificationService">The email notification service.</param>
 public NotifyUserOnFriendshipRequestSentIntegrationEventHandler(
     IFriendshipRequestRepository friendshipRequestRepository,
     IUserRepository userRepository,
     IEmailNotificationService emailNotificationService)
 {
     _friendshipRequestRepository = friendshipRequestRepository;
     _userRepository           = userRepository;
     _emailNotificationService = emailNotificationService;
 }
コード例 #3
0
        public async Task ShouldFailToFindFriendship()
        {
            IFriendshipRequestRepository repository = GetRepository(null);

            IFriendshipRequestDomainService domainService = new FriendshipRequestDomainService(repository);
            CommandResult commandResult = await domainService.DumpExistingFriendshipRequest(Guid.NewGuid(), Guid.NewGuid());

            Assert.IsFalse(commandResult.Success);
            Assert.AreEqual("A solicitação de amizade não foi encontrada no banco de dados.", commandResult.Notifications.FirstOrDefault().Description);
        }
コード例 #4
0
 public UserRepository(
     IUnitOfWork unitOfWork,
     IDbConnectionFactory dbConnectionFactory,
     IFriendshipRequestRepository friendshipRequestRepository,
     IFriendshipRepository friendshipRepository)
 {
     _dbConnectionFactory         = dbConnectionFactory;
     _friendshipRequestRepository = friendshipRequestRepository;
     UnitOfWork            = unitOfWork;
     _friendshipRepository = friendshipRepository;
 }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RejectFriendshipRequestCommandHandler"/> class.
 /// </summary>
 /// <param name="userIdentifierProvider">The user identifier provider.</param>
 /// <param name="friendshipRequestRepository">The friendship request repository.</param>
 /// <param name="unitOfWork">The unit of work.</param>
 /// <param name="dateTime">The date and time.</param>
 public RejectFriendshipRequestCommandHandler(
     IUserIdentifierProvider userIdentifierProvider,
     IFriendshipRequestRepository friendshipRequestRepository,
     IUnitOfWork unitOfWork,
     IDateTime dateTime)
 {
     _userIdentifierProvider      = userIdentifierProvider;
     _friendshipRequestRepository = friendshipRequestRepository;
     _unitOfWork = unitOfWork;
     _dateTime   = dateTime;
 }
 public UpdateFriendshipRequestStatusCommandHandler(
     IFriendshipRequestRepository friendshipRequestRepository,
     IUserRepository userRepository,
     IFriendshipRepository friendshipRepository,
     IEventBus eventBus,
     IFriendshipQueries friendshipQueries)
 {
     _friendshipRequestRepository = friendshipRequestRepository;
     _userRepository       = userRepository;
     _friendshipRepository = friendshipRepository;
     _eventBus             = eventBus;
     _friendshipQueries    = friendshipQueries;
 }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SendFriendshipRequestCommandHandler"/> class.
 /// </summary>
 /// <param name="userIdentifierProvider">The user identifier provider.</param>
 /// <param name="userRepository">The user repository.</param>
 /// <param name="friendshipRepository">The friendship repository.</param>
 /// <param name="friendshipRequestRepository">The friendship request repository.</param>
 /// <param name="unitOfWork">The unit of work.</param>
 public SendFriendshipRequestCommandHandler(
     IUserIdentifierProvider userIdentifierProvider,
     IUserRepository userRepository,
     IFriendshipRepository friendshipRepository,
     IFriendshipRequestRepository friendshipRequestRepository,
     IUnitOfWork unitOfWork)
 {
     _userIdentifierProvider      = userIdentifierProvider;
     _userRepository              = userRepository;
     _friendshipRepository        = friendshipRepository;
     _friendshipRequestRepository = friendshipRequestRepository;
     _unitOfWork = unitOfWork;
 }
コード例 #8
0
 public CreateFriendshipRequestCommandHandler(
     ILogger <UpdateUserCommandHandler> logger,
     IMapper mapper,
     IUserRepository userRepository,
     IFriendshipRequestRepository friendshipRequestRepository,
     IFriendshipRequestQueries friendshipRequestQueries,
     IEventBus eventBus)
 {
     _logger         = logger;
     _mapper         = mapper;
     _userRepository = userRepository;
     _friendshipRequestRepository = friendshipRequestRepository;
     _friendshipRequestQueries    = friendshipRequestQueries;
     _eventBus = eventBus;
 }
コード例 #9
0
        public async Task ShouldFailToDumpANonAcceptedRequest()
        {
            Guid requesterId = Guid.NewGuid();
            Guid requestedId = Guid.NewGuid();

            FriendshipRequest request = new FriendshipRequest(requesterId, requestedId, null);

            IFriendshipRequestRepository repository = GetRepository(request);

            IFriendshipRequestDomainService domainService = new FriendshipRequestDomainService(repository);
            CommandResult commandResult = await domainService.DumpExistingFriendshipRequest(requesterId, requestedId);

            FriendshipRequest friendshipRequest = await repository.GetActiveByCompositeIdAsync(requesterId, requestedId);

            Assert.IsFalse(commandResult.Success);
            Assert.AreEqual("Só é possível baixar uma solicitação que já foi aceita.", commandResult.Notifications.FirstOrDefault().Description);
        }
コード例 #10
0
        public async Task ShouldDumpFriendship()
        {
            Guid requesterId = Guid.NewGuid();
            Guid requestedId = Guid.NewGuid();

            FriendshipRequest request = new FriendshipRequest(Guid.NewGuid(), Guid.NewGuid(), null);

            request.Accept();

            IFriendshipRequestRepository repository = GetRepository(request);

            IFriendshipRequestDomainService domainService = new FriendshipRequestDomainService(repository);
            CommandResult commandResult = await domainService.DumpExistingFriendshipRequest(requesterId, requestedId);

            FriendshipRequest friendshipRequest = await repository.GetActiveByCompositeIdAsync(requesterId, requestedId);

            Assert.IsTrue(commandResult.Success);
            Assert.AreEqual(FriendshipRequestStatus.Dumped, friendshipRequest.Status);
        }
コード例 #11
0
ファイル: User.cs プロジェクト: war-man/event-reminder
        /// <summary>
        /// Creates a new friendship request for the specified friend.
        /// </summary>
        /// <param name="friend">The friend.</param>
        /// <param name="friendshipRepository">The friendship repository.</param>
        /// <param name="friendshipRequestRepository">The friendship request repository.</param>
        /// <returns>The result that contains a friendship request or an error.</returns>
        public async Task <Result <FriendshipRequest> > SendFriendshipRequestAsync(
            User friend,
            IFriendshipRepository friendshipRepository,
            IFriendshipRequestRepository friendshipRequestRepository)
        {
            if (await friendshipRepository.CheckIfFriendsAsync(this, friend))
            {
                return(Result.Failure <FriendshipRequest>(DomainErrors.FriendshipRequest.AlreadyFriends));
            }

            if (await friendshipRequestRepository.CheckForPendingFriendshipRequestAsync(this, friend))
            {
                return(Result.Failure <FriendshipRequest>(DomainErrors.FriendshipRequest.PendingFriendshipRequest));
            }

            var friendshipRequest = new FriendshipRequest(this, friend);

            AddDomainEvent(new FriendshipRequestSentDomainEvent(friendshipRequest));

            return(friendshipRequest);
        }
コード例 #12
0
 public FriendshipRequestDomainService(IFriendshipRequestRepository friendshipRequestRepository)
 {
     _friendshipRequestRepository = friendshipRequestRepository;
 }