public void FillNewsForDbGroupMembers(string groupName, Dictionary <int, VkWall> userWallsDictionary) { using (var db = new DatabaseContext()) { var group = db.Groups.FirstOrDefault(x => x.ScreenName == groupName); if (group != null && group.MembersList.Count > 0) { foreach (var groupMember in group.MembersList) { if (groupMember.Friends.Count > 0) { foreach (var friend in groupMember.Friends) { if (!userWallsDictionary.ContainsKey(friend.VkId)) { continue; } var newWall = new VkWall(); userWallsDictionary.TryGetValue(friend.VkId, out newWall); foreach (var post in newWall.PostList) { var user = db.Users.Find(friend.VkId); user.Posts.Add(new Post(post, newWall.AvgPostReaction)); db.SaveChanges(); } } } } } } }
private async Task AddVkPosItems(VkWall wall) { User user = await _context.Users.FirstOrDefaultAsync(u => u.Name == User.Identity.Name); List <VkPostItem> items = await wall.GetItemsAsync(user); await _context.AddPostItemRange(user, items); await _context.SaveAsync(); }
public async Task <IActionResult> Posts(VkWall wall) { List <VkPostItem> items = new List <VkPostItem>(); User user = await _context.Users.FirstOrDefaultAsync(u => u.Name == User.Identity.Name); if (user.VkPostItems.Count() <= 0) { await AddVkPosItems(wall); } return(View(user.VkPostItems)); }