public void LikePost(Guid postId, Guid profileId, DateTime dateTime) { // Try to find existing like var existingLikeId = new PostLikeModelId(postId, profileId); var existingLike = _uniwikiContext.PostLikes.Find(existingLikeId.GetKeyValues()); // If there is no like if (existingLike == null) { // Create the like var like = new PostLikeModel(postId, profileId, dateTime, true); // Save it to the DB _uniwikiContext.PostLikes.Add(like); } else { // If it already is liked if (existingLike.IsLiked) { // Do nothing return; } // Like it existingLike.Like(); } }
public void UnlikePost(Guid postId, Guid profileId) { // Try to find an existing like var existingLikeId = new PostLikeModelId(postId, profileId); var existingLike = _uniwikiContext.PostLikes.Find(existingLikeId.GetKeyValues()); // Check if there already is a like or its already unliked if (existingLike == null || existingLike.IsLiked == false) { // Do nothing return; } // Unlike it existingLike.Unlike(); }