예제 #1
0
        public IActionResult Profile(int id)
        {
            try
            {
                var targetUser = _userService.GetUserById(id);

                if (targetUser is null)
                {
                    return(StatusCode(StatusCodes.Status404NotFound));
                }

                var sessionUser   = _userService.GetSessionUser();
                var requestIsSent = _networkService.CheckIfRequestIsSent(targetUser.Id, sessionUser.Id);
                var areFriends    = _networkService.CheckIfFriends(targetUser.Id, sessionUser.Id);


                var userDTO = targetUser.ConvertToProfileUserDTO();
                userDTO.Posts = _postService.GetPostsOfUser(targetUser.Id).
                                Select(x => x.ConvertToViewPostDTO())
                                .ToList();

                RegulateUserType(targetUser, sessionUser, userDTO, requestIsSent, areFriends);

                return(View(userDTO));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }