/// <summary> /// Retrieves a base paged result on the current <see cref="GetValidEntities" /> asynchronously. /// </summary> /// <param name="request">The paged request to use.</param> /// <param name="ctx">The context or <c>null</c> if a new should be created.</param> /// <param name="query">An optional query on the entities to use (if <c>null</c>, GetValidEntities is used).</param> /// <param name="filter">An optional filter expression.</param> /// <returns>The base paged result.</returns> public async Task <BasePagedResult <TEntity> > GetBasePagedResultAsync(PagedRequest request, TContext ctx = null, IQueryable <TEntity> query = null, Expression <Func <TEntity, bool> > filter = null) { return(await ExecuteContextWrappedAsync(async c => await PagedResult <TEntity, TContext> .GetBaseResultAsync(request, c, query, filter, this), ctx)); }