Example #1
0
        public FileListViewModel GetList(
            string repositoryName,
            string siteName,
            string folderName,
            string search,
            int skip = 0,
            int size = 20)
        {
            if (size < 1)
            {
                size = 20;
            }
            var repository    = new Repository(repositoryName).AsActual();
            var currentFolder = _mediaFolderManager.Get(repository, folderName);

            if (currentFolder == null)
            {
                currentFolder = new MediaFolder(repository, folderName);
                _mediaFolderManager.Add(repository, currentFolder);
            }
            var contentQuery = currentFolder.CreateQuery();

            if (!string.IsNullOrEmpty(search))
            {
                IWhereExpression expression = new WhereContainsExpression(null, "FileName", search);
                expression   = new OrElseExpression(expression, new WhereContainsExpression(null, "Metadata.AlternateText", search));
                expression   = new OrElseExpression(expression, new WhereContainsExpression(null, "Metadata.Description", search));
                contentQuery = contentQuery
                               .Where(expression);
            }
            var page = skip / size;

            contentQuery = contentQuery.SortBy("UtcCreationDate", "desc");
            var pagedList = contentQuery.ToPageList(page, size);

            return(new FileListViewModel
            {
                total = pagedList.TotalItemCount,
                start = skip,
                list = pagedList.Select(it => new FileViewModel
                {
                    url = it.Url,
                    mtime = DateTime.UtcNow.Ticks
                }),
                state = "SUCCESS"
            });
        }