public void Upvote(int memeId, User user) { Meme meme = _context.Memes.Find(memeId); if (meme == null) { throw new AppException($"Nie ma mema o takim Id. Metoda: {nameof(Upvote)}"); } MemeRate rate = _context.MemeRates.FirstOrDefault(x => x.Meme == meme && x.User == user); if (rate == null) { rate = CreateMemeRate(meme, user); rate.isUpvote = true; _context.MemeRates.Update(rate); } else if (!rate.isUpvote) { rate.isUpvote = true; _context.MemeRates.Update(rate); } else if (rate.isUpvote) { _context.MemeRates.Remove(rate); } _context.SaveChanges(); }
//helpers private MemeRate CreateMemeRate(Meme meme, User user) { MemeRate newLike = new MemeRate(); newLike.Meme = meme; newLike.User = user; _context.MemeRates.Add(newLike); _context.SaveChanges(); return(newLike); }