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); }
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); } }
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); }