예제 #1
0
        public JsonResult AlterExistingVideoRating(VideoRating vr, bool newRating)
        {
            string returnMessage = "";
            Video  video         = _videosRepository.GetVideoById(vr.VideoID);

            //true = like, false = dislike
            if (vr.IsLike)
            {
                if (newRating)
                {
                    video.LikesCount -= 1;
                    returnMessage     = "neutral";
                }
                else
                {
                    video.LikesCount    -= 1;
                    video.DislikesCount += 1;
                    returnMessage        = "dislike";
                }
            }
            else
            {
                if (newRating)
                {
                    video.LikesCount    += 1;
                    video.DislikesCount -= 1;
                    returnMessage        = "like";
                }
                else
                {
                    video.DislikesCount -= 1;
                    returnMessage        = "neutral";
                }
            }

            _videosRepository.UpdateVideo(video);

            vr.IsLike = newRating;
            if (returnMessage == "neutral")
            {
                _videoRatingRepository.DeleteVideoRating(vr.LikeID);
            }
            else
            {
                _videoRatingRepository.UpdateVideoRating(vr);
            }

            return(Json(new { returnMessage, video.LikesCount, video.DislikesCount }, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public ActionResult VideoPage(long?id)
        {
            if (id == null)
            {
                return(View("Error"));
            }
            Video currentVideo = _videosRepository.GetVideoById(id);

            if (currentVideo == null)
            {
                return(View("Error"));
            }
            if (currentVideo.Blocked == true || currentVideo.User.Blocked == true || currentVideo.VideoType == "PRIVATE")
            {
                if (!(UsersHelper.LoggedInUserIsAdmin(Session) && !UsersHelper.LoggedInUserIsBlocked(Session)) && !UsersHelper.LoggedInUserIsOnHisPage(Session, currentVideo.VideoOwner))
                {
                    return(View("Error"));
                }
            }
            currentVideo.ViewsCount += 1;
            _videosRepository.UpdateVideo(currentVideo);
            if (UsersHelper.LoggedInUserUsername(Session) != null)
            {
                bool        exists = CheckIfSubbed(currentVideo.VideoOwner);
                VideoRating rating = GetVideoRatingForVideo(id);
                ViewBag.Subbed = exists;
                ViewBag.Rating = rating?.IsLike;
            }
            var video = VideoDTO.ConvertVideoToDTO(currentVideo);

            return(View(video));
        }
예제 #3
0
 public ActionResult BlockVideo(long?id)
 {
     if (UsersHelper.LoggedInUserUsername(Session) == null)
     {
         return(null);
     }
     if (_videosRepository.GetVideoById(id) == null)
     {
         return(null);
     }
     _videosRepository.BlockVideo(id);
     ViewBag.Message = "Video has been successfully blocked.";
     return(PartialView("MessageModal"));
 }