Exemple #1
0
        private int AddAssetsToList(List<AssetInfo> assets, AccessAsset accessAsset, string assetPath, int folderAssetId, int currentPage, int pageSize)
        {
            var returnAllPages = pageSize == -1;

            // Fetch specified page of data
            var request = new AssetPagedRequest
            {
                assetId = folderAssetId,
                currentPage = currentPage - 1,
                pageSize = returnAllPages ? _maxSupportedPageSize : pageSize,
                sortColumn = "",
                orderType = cpAssetOrderType.Ascending,
                visibilityType = cpAssetVisibilityType.Normal,
                ignoreFilter = true,
                ignoreSort = true
            };

            var response = accessAsset.Paged(request);

            if (response != null && response.assets != null)
            {
                foreach (var worklistAsset in response.assets)
                {
                    if (worklistAsset.type == (int)AssetType.File || worklistAsset.type == (int)AssetType.Folder)
                    {
                        var publishedUrl = _settings.PublishSiteRootUrl + _settings.ImageBrowsePublishServerPath + assetPath + "/" + worklistAsset.label;
                        assets.Add(new AssetInfo
                        {
                            Id = worklistAsset.id,
                            Label = worklistAsset.label,
                            CmsPath = worklistAsset.FullPath,
                            PublishedUrl = publishedUrl,
                            IsFolder = worklistAsset.type == (int)AssetType.Folder
                        });
                    }
                }
            }

            // If returning all results, determine if additional pages of data need to be loaded
            if (returnAllPages && (response.normalCount > (currentPage * _maxSupportedPageSize)))
            {
                currentPage++;
                return AddAssetsToList(assets, accessAsset, assetPath, folderAssetId, currentPage, pageSize);
            }

            return response.normalCount;
        }