public async Task <IEnumerable <UserTweetReaction> > ReactedToMany(IEnumerable <UserTweetReaction> reactions) { foreach (UserTweetReaction r in reactions) { UserTweetReactionModel model = await _dbContext.UserTweetReaction .FirstOrDefaultAsync(u => u.UserId == r.UserId && u.TweetId == r.TweetId && u.ReactionId == r.ReactionId); if (model != null) { r.Reacted = true; } } return(reactions); }
public async Task <UserTweetReaction> Reacted(UserTweetReaction userTweetReaction) { UserTweetReactionModel model = await _dbContext.UserTweetReaction .FirstOrDefaultAsync(u => u.UserId == userTweetReaction.UserId && u.TweetId == userTweetReaction.TweetId && u.ReactionId == userTweetReaction.ReactionId); if (model == null) { userTweetReaction.Reacted = false; return(userTweetReaction); } userTweetReaction.Reacted = true; return(userTweetReaction); }
public async Task <UserTweetReaction> Toggle(UserTweetReaction userTweetReaction) { AppUser user = await _dbContext.Users.FirstOrDefaultAsync(u => u.Id == userTweetReaction.UserId); TweetModel tweetModel = await _dbContext.Tweet.FirstOrDefaultAsync(t => t.Id == userTweetReaction.TweetId); ReactionModel reactionModel = await _dbContext.Reaction.FirstOrDefaultAsync(r => r.Id == userTweetReaction.ReactionId); if (user == null || tweetModel == null || reactionModel == null) { throw new ArgumentNullException("Invalid input"); } UserTweetReactionModel model = await _dbContext.UserTweetReaction .FirstOrDefaultAsync(u => u.UserId == userTweetReaction.UserId && u.TweetId == userTweetReaction.TweetId && u.ReactionId == userTweetReaction.ReactionId); if (model != null) { _dbContext.Remove <UserTweetReactionModel>(model); await _dbContext.SaveChangesAsync(); return(null); } model = new UserTweetReactionModel { UserId = userTweetReaction.UserId, TweetId = userTweetReaction.TweetId, ReactionId = userTweetReaction.ReactionId }; _dbContext.Add <UserTweetReactionModel>(model); await _dbContext.SaveChangesAsync(); userTweetReaction.Id = model.Id; userTweetReaction.User = user; userTweetReaction.Tweet = new Tweet { Id = tweetModel.Id, Text = tweetModel.Text }; userTweetReaction.Reaction = new Reaction(name: reactionModel.Name); userTweetReaction.Reaction.Id = reactionModel.Id; return(userTweetReaction); }