Exemplo n.º 1
0
        public IActionResult GetById(long id)
        {
            var loggedInUserRole = HttpContext.Session.GetString("LoggedInUserRole");

            var  contentType = Request.ContentType;
            User user        = _userData.GetById(id);

            if (user == null)
            {
                return(NotFound());
            }
            if (contentType == null)
            {
                if (loggedInUserRole != null)
                {
                    if (loggedInUserRole.Equals("1"))
                    {
                        long loggedInUserId = long.Parse(HttpContext.Session.GetString("LoggedInUserId"));
                        if (user.Blocked == true && user.Id != loggedInUserId)
                        {
                            return(StatusCode(401));
                        }
                    }
                }
                else
                {
                    if (user.Blocked == true)
                    {
                        return(StatusCode(401));
                    }
                }
            }

            user.Followers    = _followData.GetFollowers(user.Id);
            user.Following    = _followData.GetFollowings(user.Id);
            user.UserVideos   = _videoData.GetByOwnerId(user.Id);
            user.LikedVideos  = _videoData.GetLikedVideos(user);
            user.UserComments = _commentData.GetCommentsByUser(user.Id);
            foreach (var u in user.LikedVideos)
            {
                u.Owner = _userData.GetById(u.OwnerId);
            }

            SingleUserDTO singleUserDTO = SingleUserDTO.ConvertUserToDTO(user);

            if (contentType != null)
            {
                if (contentType.Equals("application/json"))
                {
                    return(Json(singleUserDTO));
                }
                else if (contentType.Equals("text/html"))
                {
                    SingleUserDTO newDTO = SingleUserDTO.ConvertUserToDTO(user);
                    return(View("SingleUserInfo", newDTO));
                }
                return(StatusCode(415));
            }
            return(View("UserPage", singleUserDTO));
        }