public void ShouldFailToAcceptNonPendingFriendshipRequest()
        {
            FriendshipRequest friendshipRequest = GetFriendshipRequest();

            friendshipRequest.Accept();
            friendshipRequest.Accept();

            Assert.IsFalse(friendshipRequest.IsValid);
            Assert.AreEqual("Só é possível aceitar uma solicitação pendente.", friendshipRequest.GetNotifications().FirstOrDefault().Description);
        }
Пример #2
0
        public async Task <CommandResult> Handle(AcceptFriendshipRequestCommand request, CancellationToken cancellationToken)
        {
            FriendshipRequest friendshipRequest = await _friendshipRequestRepository.GetByIdAsync(request.FriendshipRequestId);

            if (friendshipRequest == null || !friendshipRequest.IsRequested(_currentProfileId))
            {
                return(FailureDueToFriendshipNotFound());
            }

            CommandResult profileServiceResult = await _profileDomainService.MakeFriends(friendshipRequest.RequesterId, friendshipRequest.RequestedId);

            if (!profileServiceResult.Success)
            {
                return(profileServiceResult);
            }

            friendshipRequest.Accept();
            if (!friendshipRequest.IsValid)
            {
                return(FailureDueToEntityStateInconsistency(friendshipRequest));
            }

            await _friendshipRequestRepository.UpdateAsync(friendshipRequest);

            return(await CommitAndPublishDefaultAsync());
        }
Пример #3
0
 protected void AcceptRequestButton_Click(object sender, EventArgs e)
 {
     if (friendRequest != null && friendRequest.Status == FriendshipRequestStatus.Pending)
     {
         friendRequest.Accept();
     }
     ShowHideContent();
 }
        public void ShouldAcceptFriendshipRequest()
        {
            FriendshipRequest friendshipRequest = GetFriendshipRequest();

            friendshipRequest.Accept();

            Assert.IsTrue(friendshipRequest.IsValid);
            Assert.IsTrue(friendshipRequest.IsAccepted);
        }
        public void ShouldDumpFriendshipRequest()
        {
            FriendshipRequest friendshipRequest = GetFriendshipRequest();

            friendshipRequest.Accept();
            friendshipRequest.Dump();

            Assert.IsTrue(friendshipRequest.IsValid);
            Assert.IsTrue(friendshipRequest.IsDumped);
        }
Пример #6
0
    protected void RequestsGridView_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int         index   = e.GetSelectedRowIndex() % RequestsGridView.PageSize;
        GridViewRow row     = RequestsGridView.Rows[index];
        int         id      = Convert.ToInt32(row.Cells[0].Text.Trim());
        var         request = new FriendshipRequest(id);

        if (e.CommandName == "accept")
        {
            request.Accept();
        }
        if (e.CommandName == "reject")
        {
            request.Reject();
        }

        RequestsGridView.DataBind();
    }
Пример #7
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);
        }
Пример #8
0
        /// <inheritdoc />
        public async Task <Result> Handle(AcceptFriendshipRequestCommand request, CancellationToken cancellationToken)
        {
            Maybe <FriendshipRequest> maybeFriendshipRequest = await _friendshipRequestRepository.GetByIdAsync(request.FriendshipRequestId);

            if (maybeFriendshipRequest.HasNoValue)
            {
                return(Result.Failure(DomainErrors.FriendshipRequest.NotFound));
            }

            FriendshipRequest friendshipRequest = maybeFriendshipRequest.Value;

            if (friendshipRequest.FriendId != _userIdentifierProvider.UserId)
            {
                return(Result.Failure(DomainErrors.User.InvalidPermissions));
            }

            Maybe <User> maybeUser = await _userRepository.GetByIdAsync(friendshipRequest.UserId);

            if (maybeUser.HasNoValue)
            {
                return(Result.Failure(DomainErrors.FriendshipRequest.UserNotFound));
            }

            Maybe <User> maybeFriend = await _userRepository.GetByIdAsync(friendshipRequest.FriendId);

            if (maybeFriend.HasNoValue)
            {
                return(Result.Failure(DomainErrors.FriendshipRequest.FriendNotFound));
            }

            Result acceptResult = friendshipRequest.Accept(_dateTime.UtcNow);

            if (acceptResult.IsFailure)
            {
                return(Result.Failure(acceptResult.Error));
            }

            await _unitOfWork.SaveChangesAsync(cancellationToken);

            return(Result.Success());
        }