コード例 #1
0
        public async Task <IActionResult> Like([FromBody] ImageLike like)
        {
            var hasAny = await _imageRepository.QueryLikes()
                         .AnyAsync(a => a.ImageId == like.ImageId &&
                                   a.UserId == like.UserId);

            if (hasAny)
            {
                return(Ok(new ResponseDto()
                {
                    Message = "content liked already",
                    Status = ResponseStatus.Success
                }));
            }

            await _imageRepository.AddImageLike(like);

            await _imageRepository.Save();

            return(Ok(
                       new ResponseDto()
            {
                Status = ResponseStatus.Success,
                Data = like
            }));
        }
コード例 #2
0
        public virtual async Task <IActionResult> LikeAjax(ImageLike model)
        {
            //TODO
            //Remove default value for Liked attribute and create new migration
            string userId = User.GetUserId();

            var(likes, dislikes) = await service.LikeImageAsync(model.Id, model.Like, userId);

            return(Json(new { success = true, like = likes, dislike = dislikes }));
        }
コード例 #3
0
        public ActionResult UnlikeImage(int ID)
        {
            string    userID    = User.Identity.GetUserId(); // get current user ID
            File      file      = db.Files.Find(ID);
            ImageLike imageLike = db.ImageLike.Where(i => i.FileID == ID && i.UserID == userID).FirstOrDefault();

            db.ImageLike.Remove(imageLike);
            db.SaveChanges();

            return(RedirectToAction("PublicImages"));
        }
コード例 #4
0
        public ActionResult LikeImage(int ID) //must use ID so it will map properly to tbl_File ID
        {
            ImageLike imageLike = new ImageLike();

            imageLike.FileID = ID;
            imageLike.UserID = User.Identity.GetUserId();
            db.ImageLike.Add(imageLike);
            db.SaveChanges();


            return(RedirectToAction("PublicImages"));
        }
コード例 #5
0
        //GET: checks ImageLike table to see if current user already "liked" an image from a previous session
        public bool PublicImageLikedState(int?ID)                   //ID passed from PublicImages() as review.ImageID
        {
            string    userID           = User.Identity.GetUserId(); // get current user ID
            ImageLike imageLike        = db.ImageLike.Where(i => i.FileID == ID && i.UserID == userID).FirstOrDefault();
            File      file             = db.Files.Find(ID);
            var       imageLikedStatus = false;

            if (imageLike != null)
            {
                imageLikedStatus = true;
            }
            else
            {
                imageLikedStatus = false;
            }
            return(imageLikedStatus);
        }
コード例 #6
0
        private void LikeButton_Click(object sender, RoutedEventArgs e)
        {
            ImageLike imageLike = new ImageLike
            {
                imageId = CurrentGalleryCard.Image.id,
                userId  = ServerService.instance.user.id
            };

            if ((bool)LikeButton.IsChecked)
            {
                ImagePreviewRoom.AddLike();
            }
            else
            {
                ImagePreviewRoom.RemoveLike();
            }
        }
コード例 #7
0
 public async Task RemoveImageLike(ImageLike like)
 {
     _dbContext.ImageLikes.Remove(like);
 }
コード例 #8
0
        public async Task <ImageLike> AddImageLike(ImageLike like)
        {
            await _dbContext.ImageLikes.AddAsync(like);

            return(like);
        }