Ejemplo n.º 1
0
        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();
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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));
        }