Ejemplo n.º 1
0
        public ActionResult FavouriteList(int?page = 1)
        {
            var userId = db.GetUserId(User);

            Expression <Func <Picture, bool> > likedExpression = x => x.Rates
                                                                 .Any(r => r.Like == true && r.UserId == userId);

            var pictures = GetPaigedUserRatedPictures(page.Value, likedExpression);

            return(View(nameof(PictureList), pictures));
        }
Ejemplo n.º 2
0
        private void RatePicture(int pictureId, bool rate = true)
        {
            var userId = db.GetUserId(User);

            var previousRate = db.Rates
                               .Where(x => x.PictureId == pictureId && x.UserId == userId)
                               .FirstOrDefault();

            if (previousRate != null)
            {
                if (previousRate.Like == rate)
                {
                    db.Rates.Remove(previousRate);
                }
                else
                {
                    previousRate.Like = rate;
                }
            }
            else
            {
                var newRate = new Rate
                {
                    Like      = rate,
                    PictureId = pictureId,
                    UserId    = userId
                };
                db.Rates.Add(newRate);
            }

            db.SaveChanges();
        }