public async Task <FriendRequestDto> UpdateFriendRequestStateAsync( FriendRequestStateUpdateModel model, int receiverId) { FriendRequest friendRequest = await friendRequestRepository.GetByIdAsync(model.SenderId, receiverId); FriendRequestState tmp; if (friendRequest is null || !friendRequest.RequestToId.Equals(receiverId) || !Enum.TryParse(model.State, true, out tmp)) { return(null); } friendRequest.State = tmp; friendRequest = await friendRequestRepository.UpdateAsync(friendRequest); await friendRequestRepository.SaveChangesAsync(); bool makeFriendResult = false; if (friendRequest.State is FriendRequestState.Accepted) { makeFriendResult = await friendService.MakeFriendsAsync(friendRequest.RequestFromId, friendRequest.RequestToId); } if (!makeFriendResult) { return(null); } await followingService.RemoveFollowingAsync(friendRequest.RequestToId, friendRequest.RequestFromId); await followingService.RemoveFollowingAsync(friendRequest.RequestFromId, friendRequest.RequestToId); return(mapper.Map <FriendRequest, FriendRequestDto>(friendRequest)); }
public async Task <IActionResult> UpdateFriendRequestStateAsync([FromBody] FriendRequestStateUpdateModel model) { return(this.ConvertResult( await friendRequestService.UpdateFriendRequestStateAsync(model, userResolverService.GetUserId()))); }