private static void AddRecords(ConcurrentQueue <PostRecord> concurrentQueue) { while (true) { try { if (concurrentQueue.TryDequeue(out PostRecord pr)) { var user = GetUser(pr.Username); var subreddit = GetSubreddit(pr.Subreddit); var subredditUser = GetSubredditUser(subreddit, user); var post = new Post { SubredditUserID = subredditUser.id, Url = pr.Url }; using (var context = new MassTaggerContext()) { context.Posts.Add(post); context.SaveChanges(); } } } catch (Exception e) { } } }
private static SubredditUser GetSubredditUser(Subreddit subreddit, RedditUser user) { using (var context = new MassTaggerContext()) { var subUser = context.SubredditUsers.FirstOrDefault(su => su.UserId == user.id && su.SubredditId == subreddit.id); if (subUser == null) { subUser = new SubredditUser { UserId = user.id, SubredditId = subreddit.id }; context.SubredditUsers.Add(subUser); context.SaveChanges(); } return(subUser); } }
private static Subreddit GetSubreddit(string subName) { using (var context = new MassTaggerContext()) { var subreddit = context.Subreddits.FirstOrDefault(s => s.SubName == subName); if (subreddit == null) { subreddit = new Subreddit { SubName = subName }; context.Subreddits.Add(subreddit); context.SaveChanges(); } return(subreddit); } }
private static RedditUser GetUser(string username) { using (var context = new MassTaggerContext()) { var user = context.RedditUsers.FirstOrDefault(u => u.Username == username); if (user == null) { user = new RedditUser { Username = username }; context.RedditUsers.Add(user); context.SaveChanges(); } return(user); } }