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); }
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()); }
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); }
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(); }
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); }
/// <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()); }