public GetImagesResponse Get(GetImagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable <Media>() .Where(m => m.Original == null && m.Folder.Id == request.Data.FolderId && m.Type == MediaType.Image); if (!request.Data.IncludeFolders) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder); } if (!request.Data.IncludeImages) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File); } if (!request.Data.IncludeArchived) { query = query.Where(m => !m.IsArchived); } query = query.ApplyTagsFilter( request.Data, tagName => { return(media => media.MediaTags.Any(tag => tag.Tag.Name == tagName)); }); var listResponse = query.Select(media => new MediaModel { Id = media.Id, Version = media.Version, CreatedBy = media.CreatedByUser, CreatedOn = media.CreatedOn, LastModifiedBy = media.ModifiedByUser, LastModifiedOn = media.ModifiedOn, Title = media.Title, Caption = media is MediaImage ? ((MediaImage)media).Caption : null, MediaContentType = media is MediaFolder ? (MediaContentType)((int)MediaContentType.Folder) : (MediaContentType)((int)MediaContentType.File), FileExtension = media is MediaImage ? ((MediaImage)media).OriginalFileExtension : null, FileSize = media is MediaImage ? ((MediaImage)media).Size : (long?)null, ImageUrl = media is MediaImage ? ((MediaImage)media).PublicUrl : null, ThumbnailUrl = media is MediaImage ? ((MediaImage)media).PublicThumbnailUrl : null, IsArchived = media.IsArchived }).ToDataListResponse(request); return(new GetImagesResponse { Data = listResponse }); }
public void Should_Return_Images_List_Successfully() { RunActionInTransaction(session => { CreateFakeMedias(session); var repository = CreateRepository(session); using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository)) { var request = new GetImagesRequest(itemsCount: 3); var images = service.GetImages(request); Assert.IsNotNull(images); Assert.AreEqual(images.Items.Count, 3); } }); }
/// <summary> /// Gets the images. /// </summary> /// <param name="request">The images request.</param> /// <returns>The <see cref="Task"/> containing the API response with <see cref="GetImagesResponse"/>.</returns> public virtual Task <ApiResponse <GetImagesResponse> > GetAllAsync(GetImagesRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrWhiteSpace(request.EntityId)) { throw new ApiException(400, $"Parameter '{nameof(request.EntityId)}' is missed."); } var requestContext = PrepareRequestContext(path: $"{Path}/{request.EntityId}/images") .WithQuery(request.Query.Build()); return(CallAsync <GetImagesResponse>(requestContext)); }
public void Should_Return_Ordered_Descending_Images_List_Successfully() { RunActionInTransaction(session => { var medias = CreateFakeMedias(session); var repository = CreateRepository(session); using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository)) { var folder = medias.First(m => m is MediaFolder && m.Title == "Images1"); var request = new GetImagesRequest(p => p.Folder.Id == folder.Id, orderDescending: true, order: p => p.Title); request.AddPaging(1, 2); var images = service.GetImages(request); Assert.IsNotNull(images); Assert.AreEqual(images.Items.Count, 1); Assert.AreEqual(images.TotalCount, 2); Assert.AreEqual(images.Items[0].Title, "Image1__1"); } }); }
/// <summary> /// Gets the list of media image entities. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The list of tag entities /// </returns> /// <exception cref="CmsApiException"></exception> public DataListResponse <MediaImage> GetImages(GetImagesRequest request = null) { try { var query = Repository .AsQueryable <MediaImage>() .ApplyFilters(request); var totalCount = query.ToRowCountFutureValue(request); query = query .AddOrderAndPaging(request) .Fetch(m => m.Folder); return(query.ToDataListResponse(totalCount)); } catch (Exception inner) { const string message = "Failed to get images list."; Logger.Error(message, inner); throw new CmsApiException(message, inner); } }
/// <summary> /// Gets images list. /// </summary> /// <param name="request">The request.</param> /// <returns> /// <c>GetImagesResponse</c> with images list. /// </returns> public GetImagesResponse Get(GetImagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable<Media>() .Where(m => m.Original == null && m.Type == Module.MediaManager.Models.MediaType.Image) .Where(f => !(f is MediaImage) || (!((MediaImage)f).IsTemporary && ((MediaImage)f).IsUploaded == true)); if (request.Data.FolderId == null) { query = query.Where(m => m.Folder == null); } else { query = query.Where(m => m.Folder.Id == request.Data.FolderId && !m.Folder.IsDeleted); } if (!request.Data.IncludeFolders) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder); } if (!request.Data.IncludeImages) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File); } if (!request.Data.IncludeArchived) { query = query.Where(m => !m.IsArchived); } query = query.ApplyMediaTagsFilter(request.Data) .ApplyCategoriesFilter(categoryService, request.Data); var listResponse = query.Select(media => new MediaModel { Id = media.Id, Version = media.Version, CreatedBy = media.CreatedByUser, CreatedOn = media.CreatedOn, LastModifiedBy = media.ModifiedByUser, LastModifiedOn = media.ModifiedOn, Title = media.Title, Description = media.Description, Caption = media is MediaImage ? ((MediaImage)media).Caption : null, MediaContentType = media is MediaFolder ? (MediaContentType)((int)MediaContentType.Folder) : (MediaContentType)((int)MediaContentType.File), FileExtension = media is MediaImage ? ((MediaImage)media).OriginalFileExtension : null, FileSize = media is MediaImage ? ((MediaImage)media).Size : (long?)null, ImageUrl = media is MediaImage ? ((MediaImage)media).PublicUrl : null, ThumbnailUrl = media is MediaImage ? ((MediaImage)media).PublicThumbnailUrl : null, IsArchived = media.IsArchived }) .ToDataListResponse(request); foreach (var model in listResponse.Items) { model.ImageUrl = fileUrlResolver.EnsureFullPathUrl(model.ImageUrl); model.ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(model.ThumbnailUrl); if (request.Data.IncludeCategories) { model.Categories = (from media in repository.AsQueryable<MediaFile>() from category in media.Categories where media.Id == model.Id && !category.IsDeleted select new CategoryNodeModel { Id = category.Category.Id, Version = category.Version, CreatedBy = category.CreatedByUser, CreatedOn = category.CreatedOn, LastModifiedBy = category.ModifiedByUser, LastModifiedOn = category.ModifiedOn, Name = category.Category.Name, CategoryTreeId = category.Category.CategoryTree.Id }).ToList(); } } return new GetImagesResponse { Data = listResponse }; }
/// <summary> /// Gets the list of media image entities. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The list of tag entities /// </returns> /// <exception cref="CmsApiException"></exception> public DataListResponse<MediaImage> GetImages(GetImagesRequest request = null) { try { var query = Repository .AsQueryable<MediaImage>() .ApplyFilters(request); var totalCount = query.ToRowCountFutureValue(request); query = query .AddOrderAndPaging(request) .Fetch(m => m.Folder); return query.ToDataListResponse(totalCount); } catch (Exception inner) { const string message = "Failed to get images list."; Logger.Error(message, inner); throw new CmsApiException(message, inner); } }
public GetImagesResponse Get(GetImagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable<Media>() .Where(m => m.Original == null && m.Type == MediaType.Image); if (request.Data.FolderId == null) { query = query.Where(m => m.Folder == null); } else { query = query.Where(m => m.Folder.Id == request.Data.FolderId && !m.Folder.IsDeleted); } if (!request.Data.IncludeFolders) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder); } if (!request.Data.IncludeImages) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File); } if (!request.Data.IncludeArchived) { query = query.Where(m => !m.IsArchived); } query = query.ApplyTagsFilter( request.Data, tagName => { return media => media.MediaTags.Any(mediaTag => mediaTag.Tag.Name == tagName && !mediaTag.Tag.IsDeleted); }); var listResponse = query.Select(media => new MediaModel { Id = media.Id, Version = media.Version, CreatedBy = media.CreatedByUser, CreatedOn = media.CreatedOn, LastModifiedBy = media.ModifiedByUser, LastModifiedOn = media.ModifiedOn, Title = media.Title, Caption = media is MediaImage ? ((MediaImage)media).Caption : null, MediaContentType = media is MediaFolder ? (MediaContentType)((int)MediaContentType.Folder) : (MediaContentType)((int)MediaContentType.File), FileExtension = media is MediaImage ? ((MediaImage)media).OriginalFileExtension : null, FileSize = media is MediaImage ? ((MediaImage)media).Size : (long?)null, ImageUrl = media is MediaImage ? ((MediaImage)media).PublicUrl : null, ThumbnailUrl = media is MediaImage ? ((MediaImage)media).PublicThumbnailUrl : null, IsArchived = media.IsArchived }).ToDataListResponse(request); return new GetImagesResponse { Data = listResponse }; }
/// <summary> /// Gets images list. /// </summary> /// <param name="request">The request.</param> /// <returns> /// <c>GetImagesResponse</c> with images list. /// </returns> public GetImagesResponse Get(GetImagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable <Media>() .Where(m => m.Original == null && m.Type == Module.MediaManager.Models.MediaType.Image) .Where(f => !(f is MediaImage) || (!((MediaImage)f).IsTemporary && ((MediaImage)f).IsUploaded == true)); if (request.Data.FolderId == null) { query = query.Where(m => m.Folder == null); } else { query = query.Where(m => m.Folder.Id == request.Data.FolderId && !m.Folder.IsDeleted); } if (!request.Data.IncludeFolders) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder); } if (!request.Data.IncludeImages) { query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File); } if (!request.Data.IncludeArchived) { query = query.Where(m => !m.IsArchived); } query = query.ApplyMediaTagsFilter(request.Data) .ApplyCategoriesFilter(categoryService, request.Data); var listResponse = query.Select(media => new MediaModel { Id = media.Id, Version = media.Version, CreatedBy = media.CreatedByUser, CreatedOn = media.CreatedOn, LastModifiedBy = media.ModifiedByUser, LastModifiedOn = media.ModifiedOn, Title = media.Title, Description = media.Description, Caption = media is MediaImage ? ((MediaImage)media).Caption : null, MediaContentType = media is MediaFolder ? (MediaContentType)((int)MediaContentType.Folder) : (MediaContentType)((int)MediaContentType.File), FileExtension = media is MediaImage ? ((MediaImage)media).OriginalFileExtension : null, FileSize = media is MediaImage ? ((MediaImage)media).Size : (long?)null, ImageUrl = media is MediaImage ? ((MediaImage)media).PublicUrl : null, ThumbnailUrl = media is MediaImage ? ((MediaImage)media).PublicThumbnailUrl : null, IsArchived = media.IsArchived }) .ToDataListResponse(request); foreach (var model in listResponse.Items) { model.ImageUrl = fileUrlResolver.EnsureFullPathUrl(model.ImageUrl); model.ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(model.ThumbnailUrl); if (request.Data.IncludeCategories) { model.Categories = (from media in repository.AsQueryable <MediaFile>() from category in media.Categories where media.Id == model.Id && !category.IsDeleted select new CategoryNodeModel { Id = category.Category.Id, Version = category.Version, CreatedBy = category.CreatedByUser, CreatedOn = category.CreatedOn, LastModifiedBy = category.ModifiedByUser, LastModifiedOn = category.ModifiedOn, Name = category.Category.Name, CategoryTreeId = category.Category.CategoryTree.Id }).ToList(); } } return(new GetImagesResponse { Data = listResponse }); }
public void TEST_Should_Return_Ordered_Images_List_Successfully() { RunActionInTransaction(session => { CreateFakeMedias(session); var repository = CreateRepository(session); using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository)) { var request = new GetImagesRequest(order: p => p.Title); var images = service.GetImages(request); Assert.IsNotNull(images); Assert.GreaterOrEqual(images.Items.Count, 0); } }); }
public void Should_Return_Ordered_Images_List_Successfully() { RunActionInTransaction(session => { var medias = CreateFakeMedias(session); var repository = CreateRepository(session); using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository)) { var folder = medias.First(m => m is MediaFolder && m.Title == "Images1"); var request = new GetImagesRequest(p => p.Folder.Id == folder.Id, p => p.Title); request.AddPaging(1, 2); var images = service.GetImages(request); Assert.IsNotNull(images); Assert.AreEqual(images.Items.Count, 1); Assert.AreEqual(images.TotalCount, 2); Assert.AreEqual(images.Items[0].Title, "Image1__2"); } }); }
public async Task <ImagesResponse> GetImages(GetImagesRequest request) { var images = await ProcessRequest(request, _imagesRepository.GetImages); return(images); }
public PagedResultSet <Image> GetImages(GetImagesRequest request) { return(new PagedResultSet <Image>(this, "gallery/images", HttpMethod.Get, request)); }