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