private Func <IQueryable <BrochureEntity>, IQueryable <BrochureEntity> > FilterBrochures(BrochureFilters filters) { return(brochures => { if (string.IsNullOrWhiteSpace(filters.Title) == false) { brochures = brochures.Where(e => e.FolderName.Contains(filters.Title.Trim())); } if (string.IsNullOrWhiteSpace(filters.Language) == false) { brochures = brochures.Where(b => b.Languages.Contains(filters.Language)); } if (filters.WithPdfOnly.Equals(true)) { brochures = brochures.Where(b => !string.IsNullOrWhiteSpace(b.ContentUrl)); } if (filters.WithoutImages.Equals(true)) { brochures = brochures.Where(b => b.Image.Bytes == null && !b.Images.Any()); } if (filters.Contributor != null) { var auth0Id = Uri.UnescapeDataString(filters.Contributor.Segments.Last()); LogTo.Debug("Filtering brochures of user {0}", auth0Id); brochures = brochures.Where(b => b.User == auth0Id); } return brochures; }); }
public async Task <SearchableCollection <Brochure> > GetBrochures(Uri identifier, BrochureFilters filters, int page, int pageSize = 10) { this.factory.OnlyCoverImage = true; var brochures = this.context.Brochures.Include(b => b.Images); return(await brochures.GetCollectionPage <Brochure, BrochureEntity, BrochureCollection>( identifier, collection => collection .OrderByDescending(b => b.Updated) .ThenByDescending(b => b.Id), this.FilterBrochures(filters), page, pageSize, this.factory.CreateBrochure)); }
public async Task <SearchableCollection <Brochure> > GetBrochures(Uri identifier, BrochureFilters filters, int page, int pageSize = 10) { return(await this.context.Brochures.GetCollectionPage( identifier, entity => entity.FolderName, this.FilterBrochures(filters), page, pageSize, this.factory.CreateBrochure)); }
private Func <IQueryable <BrochureEntity>, IQueryable <BrochureEntity> > FilterBrochures(BrochureFilters filters) { return(brochures => { if (string.IsNullOrWhiteSpace(filters.Title) == false) { brochures = brochures.Where(e => e.FolderName.Contains(filters.Title.Trim())); } if (string.IsNullOrWhiteSpace(filters.Language) == false) { brochures = brochures.Where(b => b.Language == filters.Language || b.Language2 == filters.Language); } return brochures; }); }
/// <inheritdoc /> public Task <SearchableCollection <Brochure> > GetBrochures(Uri identifier, BrochureFilters filters, int page, int pageSize = 10) { return(this.GetAll <Brochure, SearchableCollection <Brochure> >(identifier, page, pageSize)); }