예제 #1
0
        public async Task <IViewComponentResult> InvokeAsync()
        {
            var finalResults = new HomeResultsVm()
            {
                BlogResults    = new List <HomeBlogVm>(),
                PostResults    = new List <HomePostVm>(),
                SectionResults = new List <HomeSectionVm>()
            };


            var friends = friendsService.FriendsOf().Take(randomizer.Next(5, 10));

            foreach (var friend in friends)
            {
                var frResults = GetResultsForUser(friend);

                finalResults.BlogResults.AddRange(frResults.BlogResults);
                finalResults.PostResults.AddRange(frResults.PostResults);
                finalResults.SectionResults.AddRange(frResults.SectionResults);
            }

            var randUsers = userInfoService.GetRandomUsers(randomizer);

            foreach (var randUser in randUsers)
            {
                var uResults = GetResultsForUser(randUser);

                finalResults.BlogResults.AddRange(uResults.BlogResults);
                finalResults.PostResults.AddRange(uResults.PostResults);
                finalResults.SectionResults.AddRange(uResults.SectionResults);
            }


            return(View("HomeResults", finalResults));
        }
        public async Task <IViewComponentResult> InvokeAsync()
        {
            var sentRequests     = new List <FriendRequestVm>();
            var receivedRequests = new List <FriendRequestVm>();

            var friends = friendsService.FriendsOf()
                          .Where(f => f != null)
                          .Select(f => new MainFriendVm(new UserNoPass(f)));

            friendRequestsService
            .ReceivedFriendRequests()
            .ToList()
            .ForEach(rReq => {
                var s = userInfoService.GetUserWithId(rReq.SenderId);
                receivedRequests.Add(new FriendRequestVm()
                {
                    SenderUsername = s.Username,
                    SenderId       = s.Id,
                    SenderPhoto    = s.Photo,
                    Date           = rReq.CreateDate,
                    IsDeleted      = rReq.IsDeleted
                });
            });

            return(View("FriendsListFloater",
                        new CombinedFriendsVm()
            {
                FriendsList = friends,
                SentRequestsList = sentRequests,
                ReceivedRequestsList = receivedRequests
            }));
        }
예제 #3
0
        public List <Users> GetRandomUsers(Random random)
        {
            var results = new List <Users>();
            var users   = new List <Users>();

            if (CurrentUser.IsAuthenticated)
            {
                // nu iau oameni blocati sau prieteni sau pe mine

                var blockedUsers = blockService.BlockedByCurrent();
                var friends      = friendsService.FriendsOf().Where(f => f != null).Select(f => f.Id);
                users = unit.Users.Get()
                        .Where(u => u.Id != int.Parse(CurrentUser.Id) &&
                               !blockedUsers.Contains(u.Id) &&
                               !friends.Contains(u.Id))
                        .ToList();
            }
            else
            {
                users = unit.Users.Get().ToList();
            }


            var count   = random.Next(3, users.Count);
            var usedIds = new List <int>();

            for (int i = 0; i < count; ++i)
            {
                var randIndex = random.Next(1, users.Count);

                // verific sa nu trimit date despre acelasi user de 2 ori
                if (!usedIds.Contains(randIndex))
                {
                    var randUsr = users[randIndex];
                    usedIds.Add(randIndex);
                    results.Add(randUsr);
                }
                else
                {
                    i--;
                }
            }

            return(results);
        }
예제 #4
0
        public IActionResult MainFriendsList(int userId)
        {
            var friendsList = new List <UserInfoVm>();

            friendsService
            .FriendsOf(userId)
            .ForEach(usr => friendsList
                     .Add(new UserInfoVm()
            {
                Id       = usr.Id,
                Username = usr.Username,
                Email    = usr.Email,
                Photo    = usr.Photo,
                Gender   = usr.Gender
            })
                     );

            return(View("MainFriendsList", friendsList));
        }