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); }