Example #1
0
        public async Task <IActionResult> FriendRequest(int id)
        {
            var friendRequest = await _friendsService.GetFriendRequestAsync(id);

            if (friendRequest == null)
            {
                return(Error.FromController(this).Error(
                           "Friend request not found",
                           "The friend request you referenced does not exist in the system. " +
                           "Please, make sure the link you followed is identical with the one in the email.",
                           HttpStatusCode.NotFound,
                           _logger));
            }

            if (friendRequest.UserTo.UserName != User.Identity.Name)
            {
                return(Error.FromController(this).AccessDenied());
            }

            if (friendRequest.Status == FriendRequestDto.FriendRequestStatus.Accepted ||
                friendRequest.Status == FriendRequestDto.FriendRequestStatus.Rejected)
            {
                return(Error.FromController(this).Error(
                           "Friend request expired",
                           "The friend request you referenced has already been accepted or rejected.",
                           HttpStatusCode.Conflict,
                           _logger));
            }

            return(View("FriendRequest", friendRequest.ToViewModel()));
        }