Example #1
0
        public async Task <PagedValueResult <ToDoListModel> > SearchAsync(IPageDescriptor page, CancellationToken cancellationToken = default)
        {
            var spec  = this.specificationBuilder.Create <ToDoListModel>(page.Filters);
            var query = new PagedValueInquiry <ToDoList, ToDoListModel>()
            {
                Take = page.Take,
                Skip = page.Skip,
                TargetSpecification = spec,
                TargetSorts         = page.Sorts,
            };
            var result = await this.entityRepository.RunQueryAsync(query, cancellationToken);

            return(result);
        }
Example #2
0
        public async Task Handle_PagedValueInquiry_Test()
        {
            using (var scope = this.provider.CreateScope())
            {
                var mediator = scope.ServiceProvider.GetRequiredService <IMediator>();
                var request  = new PagedValueInquiry <Source, Target>()
                {
                    SourceQuery = Array.Empty <Source>().AsQueryable()
                };
                var result = await mediator.HandleAsync(request, default);

                Assert.NotNull(result);
            }
        }
Example #3
0
        public override async Task <PagedValueResult <TModel> > HandleAsync(GetAllModelsFromEntityByPageQuery <TModel, TEntity, TKey, TContext> request, CancellationToken cancellationToken = default)
        {
            var targetSpecification = this.specificationBuilder.Create <TModel>(request.PageDescriptor.Filters);

            var query = new PagedValueInquiry <TEntity, TModel>()
            {
                Take                = request.PageDescriptor.Take,
                Skip                = request.PageDescriptor.Skip,
                TargetSorts         = request.PageDescriptor.Sorts,
                TargetSpecification = targetSpecification
            };

            var result = await this.repository.RunQueryAsync(query, cancellationToken);

            return(result);
        }
        public async Task <PagedValueResult <T> > SearchAsync <T>(int todoListId, IPageDescriptor page, CancellationToken cancellationToken) where T : class
        {
            var spec = this.specificationBuilder.Create <ToDoItem>(page.Filters);

            spec = spec.And(new Specification <ToDoItem>(x => x.ToDoListId == todoListId));

            var query = new PagedValueInquiry <ToDoItem, T>()
            {
                Take = page.Take,
                Skip = page.Skip,
                SourceSpecification = spec,
                SourceSorts         = page.Sorts,
            };
            var result = await this.repository.RunQueryAsync(query, cancellationToken);

            return(result);
        }