public virtual ActionResult Render(UserListModel model) { var selectedColumns = ReflectionHelper.GetProfileColumns().ToArray(); var orderByColumn = selectedColumns.FirstOrDefault(i => i.SupportSorting); var groupId = Request.QueryString["groupId"].Apply(parseGuid); var viewModel = new UserListViewModel { AmountPerRequest = model.AmountPerRequest, DisplayedAmount = model.DisplayedAmount, Title = model.Title, MembersRows = GetUsersRowsViewModel(), OrderByColumn = orderByColumn }; var activeUserSearchRequest = new ActiveUserSearchQuery { Text = string.Empty, Skip = 0, Take = model.DisplayedAmount, OrderingString = orderByColumn?.PropertyName, GroupId = groupId }; var(activeUsers, isLastRequest) = GetActiveUsers(activeUserSearchRequest); viewModel.MembersRows.SelectedColumns = ExtendIfGroupMembersPage(groupId, selectedColumns); viewModel.MembersRows.Members = activeUsers; viewModel.IsLastRequest = isLastRequest; return(View(UserListViewPath, viewModel)); }
protected override (IEnumerable <Guid> searchResult, long totalHits) GetActiveUserIds(ActiveUserSearchQuery query) { var searchQuery = new SearchTextQuery { Text = query.Text, Skip = query.Skip, Take = query.Take, OrderingString = query.OrderingString, SearchableTypeIds = ((int)UintraSearchableTypeEnum.User).ToEnumerable(), GroupId = query.GroupId }; var searchResult = _elasticIndex.Search(searchQuery); var result = searchResult.Documents.Select(r => Guid.Parse(r.Id.ToString())); return(result, searchResult.TotalHits); }
protected abstract (IEnumerable <Guid> searchResult, long totalHits) GetActiveUserIds(ActiveUserSearchQuery query);
private (IEnumerable <MemberModel> result, bool isLastRequest) GetActiveUsers(ActiveUserSearchQuery query) { var(searchResult, totalHits) = GetActiveUserIds(query); var result = searchResult .Apply(_intranetMemberService.GetMany) .Select(MapToViewModel); var isLastRequest = query.Skip + query.Take >= totalHits; return(result, isLastRequest); }