Example #1
0
        public Task <IEnumerable <IPage> > SearchPagesAsync(string title, PagePaginationOptions pagination, CancellationToken cancellationToken = default)
        {
            if (title == null)
            {
                throw new ArgumentNullException(nameof(title));
            }
            if (title.Length < 3)
            {
                throw new ArgumentOutOfRangeException(nameof(title));
            }
            if (pagination == null)
            {
                throw new ArgumentNullException(nameof(pagination));
            }

            return(pageRepositiry.SearchPagesAsync(websiteContext.Website.Id, title, pagination, cancellationToken));
        }
Example #2
0
        public async Task <IEnumerable <IPage> > SearchPagesAsync(string webSiteId, string title, PagePaginationOptions pagination, CancellationToken cancellationToken = default)
        {
            var findDefinition = pageDocuments.Find(Builders <PageDocument> .Filter.And(
                                                        Builders <PageDocument> .Filter.Eq(it => it.WebsiteId, webSiteId),
                                                        Builders <PageDocument> .Filter.Text(title, new TextSearchOptions {
                CaseSensitive = false
            })
                                                        ));

            if (pagination != null)
            {
                findDefinition.Skip(pagination.Skip);
                findDefinition.Limit(pagination.Limit);
            }

            var cursor = await findDefinition.ToCursorAsync(cancellationToken);

            return(cursor.ToEnumerable(cancellationToken));
        }
        public Task <IEnumerable <IPage> > SearchPagesAsync(string websiteId, string title, PagePaginationOptions pagination, CancellationToken cancellationToken = default)
        {
            var result = pages.Values.AsQueryable().Where(it => it.WebsiteId == websiteId && it.Header.Contains(title));

            if (pagination != null)
            {
                result = result.Skip(pagination.Skip);
                result = result.Take(pagination.Limit);
            }

            return(Task.FromResult <IEnumerable <IPage> >(result.OfType <IPage>().ToArray()));
        }