Ejemplo n.º 1
0
 protected void SortList_Command(object sender, CommandEventArgs e)
 {
     SearchResultListRepeater.UpdateSortExpression(e.CommandArgument.ToString());
     SavedUserAssetSearch.AssetFinder.OrderBy = OrderBy.Custom;
     SavedUserAssetSearch.AssetFinder.SortExpressions.Clear();
     SavedUserAssetSearch.AssetFinder.SortExpressions.AddRange(SearchResultListRepeater.GetSortExpressions());
     Bind(1);
 }
Ejemplo n.º 2
0
        private void Bind(int page, bool updateAuditLog)
        {
            AssetFinder        finder = SavedUserAssetSearch.AssetFinder;
            EntityList <Asset> assets = Asset.FindMany(finder, page - 1, PageSize);

            if (assets.Count == 0)
            {
                NoSearchResultsPanel.Visible           = true;
                SearchResultListRepeater.Visible       = false;
                SearchResultThumbnailsDataList.Visible = false;
            }
            else
            {
                // Hide the no results panel; we have some assets
                NoSearchResultsPanel.Visible = false;

                // Update page size
                SavedUserAssetSearch.PageSize = PageSize;

                // Update page
                SavedUserAssetSearch.Page = page;

                // Show filters panel if a search term was entered, we're on page 1, and have more than the specified number of results
                if (!StringUtils.IsBlank(finder.GeneralKeyword) && (page == 1) && (ShowFiltersCount > 0) && (assets.PagingInfo.TotalRecords > ShowFiltersCount))
                {
                    PageHeader pageHeader = (PageHeader)SiteUtils.FindControlRecursive(Page, "PageHeader1");
                    pageHeader.ToggleSearchVisibility(SavedUserAssetSearch.FilterOpen, SavedUserAssetSearch.CategoriesOpen);

                    string message = string.Format("Your search has returned more than {0} results. Use the filters above to refine your search.", ShowFiltersCount);
                    LargeSearchResultFeedbackLabel.SetErrorMessage(message);
                    LargeSearchResultFeedbackLabel.Pinned = true;
                }
                else
                {
                    LargeSearchResultFeedbackLabel.Visible = false;
                    LargeSearchResultFeedbackLabel.Pinned  = false;
                }

                // Log which assets were returned as part of this search
                if (updateAuditLog)
                {
                    int index = 0;

                    foreach (Asset asset in assets)
                    {
                        index++;

                        AuditLogManager.LogAssetInSearchResult(SavedUserAssetSearch.AuditAssetSearchId, asset.AssetId.GetValueOrDefault());
                        AuditLogManager.LogAssetAction(asset, CurrentUser, AuditAssetAction.ReturnedInSearch, string.Format("Search Criteria: {0}. Total assets: {1}. Displayed on page: {2}, asset number: {3}", finder.GeneralKeyword, assets.PagingInfo.TotalRecords, assets.PagingInfo.CurrentPage + 1, index));
                    }
                }

                // The current view is thumbnails, so ensure we have at last a single row and toggle
                // the relevant data controls (ie. hide the list repeater and show the thumbnail datalist)
                if (SavedUserAssetSearch.SearchResultsView == SearchResultsView.Thumbnails)
                {
                    // In thumbnail view, we need to make sure we have at least one row of assets, or the
                    // layout gets really messed up.  Here, we're doing a check, and adding in empty assets
                    // to pad out the asset list to at least a single row.
                    while (assets.Count < SearchResultThumbnailsDataList.RepeatColumns)
                    {
                        assets.Add(Asset.Empty);
                    }

                    SearchResultListRepeater.Visible       = false;
                    SearchResultThumbnailsDataList.Visible = true;

                    SearchResultThumbnailsDataList.DataSource = assets;
                    SearchResultThumbnailsDataList.DataBind();
                }
                else
                {
                    SearchResultListRepeater.Visible       = true;
                    SearchResultThumbnailsDataList.Visible = false;

                    SearchResultListRepeater.DataSource = assets;
                    SearchResultListRepeater.DataBind();
                }
            }

            TopPager.CurrentPage = assets.PagingInfo.CurrentPage + 1;
            TopPager.PageSize    = assets.PagingInfo.PageSize;
            TopPager.PageCount   = assets.PagingInfo.TotalPages;
            TopPager.ItemCount   = assets.PagingInfo.TotalRecords;

            BottomPager.CurrentPage = TopPager.CurrentPage;
            BottomPager.PageSize    = TopPager.PageSize;
            BottomPager.PageCount   = TopPager.PageCount;
            BottomPager.ItemCount   = TopPager.ItemCount;

            CurrentPage = page;
            TotalPages  = assets.PagingInfo.TotalPages;
            AssetCount  = assets.PagingInfo.TotalRecords;
        }