Exemple #1
0
        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;
            });
        }
Exemple #2
0
        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));
        }
Exemple #3
0
 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));
 }
Exemple #4
0
        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));
 }