/// <summary> /// Gets the list of folder media entities. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The list of folder media entities /// </returns> /// <exception cref="CmsApiException"></exception> public DataListResponse<Media> GetFolderMedias(GetFolderMediasRequest request) { try { var query = Repository .AsQueryable<Media>() .Where(f => f.Type == request.MediaType) .ApplyFilters(request); if (request.FolderId.HasValue) { query = query.Where(f => f.Folder != null && f.Folder.Id == request.FolderId.Value); } else { query = query.Where(f => f.Folder == null); } var totalCount = query.ToRowCountFutureValue(request); query = query.AddOrderAndPaging(request); return query.ToDataListResponse(totalCount); } catch (Exception inner) { var message = string.Format("Failed to get folder medias list for media type={0} and folderId={1}.", request.MediaType, request.FolderId.HasValue ? request.FolderId.Value.ToString() : "null"); Logger.Error(message, inner); throw new CmsApiException(message, inner); } }
/// <summary> /// Gets the list of folder media entities. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The list of folder media entities /// </returns> /// <exception cref="CmsApiException"></exception> public DataListResponse <Media> GetFolderMedias(GetFolderMediasRequest request) { try { var query = Repository .AsQueryable <Media>() .Where(f => f.Type == request.MediaType) .ApplyFilters(request); if (request.FolderId.HasValue) { query = query.Where(f => f.Folder != null && f.Folder.Id == request.FolderId.Value); } else { query = query.Where(f => f.Folder == null); } var totalCount = query.ToRowCountFutureValue(request); query = query.AddOrderAndPaging(request); return(query.ToDataListResponse(totalCount)); } catch (Exception inner) { var message = string.Format("Failed to get folder medias list for media type={0} and folderId={1}.", request.MediaType, request.FolderId.HasValue ? request.FolderId.Value.ToString() : "null"); Logger.Error(message, inner); throw new CmsApiException(message, inner); } }
public void Should_Return_Root_Files_Folder_Medias_List_Successfully() { RunActionInTransaction(session => { CreateFakeMedias(session, false); var repository = CreateRepository(session); using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository)) { // Root files folder has at least 1 folder and 1 file var request = new GetFolderMediasRequest(MediaType.File, itemsCount: 2); var folderMedias = service.GetFolderMedias(request); Assert.IsNotNull(folderMedias); Assert.AreEqual(folderMedias.Items.Count, 2); } }); }
public void Should_Return_Root_Image_Folder_Medias_List_Successfully() { RunActionInTransaction(session => { CreateFakeMedias(session, false); var repository = CreateRepository(session); using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository)) { // Root images folder has at least 2 folders and at least 3 files var request = new GetFolderMediasRequest(MediaType.Image, itemsCount: 5); var folderMedias = service.GetFolderMedias(request); Assert.IsNotNull(folderMedias); Assert.AreEqual(folderMedias.Items.Count, 5); } }); }