Пример #1
0
        public ProfileAccordionViewModel GetProfileAccordionContent(int userId)
        {
            ProfileAccordionViewModel result = new ProfileAccordionViewModel();

            result.Groups =
                context.UsersToGroups.Include(ug => ug.User)
                .Include(ug => ug.Group)
                .Where(ug => ug.User.Id == userId)
                .Select(ug => ug.Group).ToList();

            result.Photos = context.Users.Include(u => u.Images).FirstOrDefault(u => u.Id == userId).Images;

            var friends1 =
                context.Relationships.Include(r => r.User)
                .Include(r => r.Friend)
                .ThenInclude(r => r.Gender)
                .Where(r => r.User.Id == userId && r.IsConfirmed)
                .Select(r => r.Friend)
                .Select(f => UserMapping.MapFriendViewModelFromUser(f))
                .ToList();

            var friends2 = context.Relationships.Include(r => r.User)
                           .Include(r => r.Friend)
                           .ThenInclude(r => r.Gender)
                           .Where(r => r.Friend.Id == userId && r.IsConfirmed)
                           .Select(r => r.User)
                           .Select(f => UserMapping.MapFriendViewModelFromUser(f))
                           .ToList();

            friends1.AddRange(friends2);
            result.Friends = friends1.Take(9);

            result.Id = userId;

            //var userCategories =
            //    context.Users.Include(u => u.Interests)
            //        .ThenInclude(i => i.Interest.Category)
            //        .ThenInclude(c => c.Events)
            //        .FirstOrDefault(u => u.Id == userId)
            //        .Interests.Select(i => i.Interest.Category);

            //result.Events = context.Events.Include(e => e.Category).Where(e => userCategories.Contains(e.Category)).ToList();
            return(result);
        }