public bool Post([FromBody] Like like) { // Check auth if (!Authenticate()) { return(false); } // Check if like's userId is valid if (like.UserId != int.Parse(Request.Headers["userId"])) { return(false); } // Modify like if (like.Id != 0) { Like lk = context.Likes.Find(like.Id); if (lk != null) { lk.Copy(like); context.SaveChanges(); return(true); } } // If user already like this post if (context.Likes.Any(l => l.PostId == like.PostId && l.UserId == like.UserId)) { return(false); } // Create new like context.Likes.Add(like); context.SaveChanges(); return(true); }