public override int ExecuteQueryCount(QueryCountRequest request) { return(Query.ToDQueryable(GetQueryDescription()) .SelectMany(request.Multiplications) .Where(request.Filters) .Query .Count()); }
/// <summary> /// Query. /// Invokes the 'query/first' endpoint of the api. /// </summary> /// <typeparam name="TEntity">The entity type.</typeparam> /// <typeparam name="TCriteria">The criteria type</typeparam> /// <param name="request">The <see cref="QueryCountRequest{TCriteria}"/>.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/>.</param> /// <returns>The count of matching entities.</returns> public virtual async Task <int> QueryCountAsync <TEntity, TCriteria>(QueryCountRequest <TCriteria> request, CancellationToken cancellationToken = default) where TEntity : class, IEntity where TCriteria : IQueryCriteria, new() { if (request == null) { throw new ArgumentNullException(nameof(request)); } return(await this.Invoke <TEntity, QueryCountRequest <TCriteria>, int>(request, cancellationToken)); }
protected internal virtual int QueryCount(CountOptions options) { var queryDescription = DynamicQueryManager.Current.QueryDescription(options.QueryName); FilterOption.SetFilterTokens(options.FilterOptions, queryDescription, canAggregate: false); var request = new QueryCountRequest { QueryName = options.QueryName, Filters = options.FilterOptions.Select(f => f.ToFilter()).ToList() }; return(DynamicQueryManager.Current.ExecuteQueryCount(request)); }
public static QueryCountRequest ToRequest(this QueryCountOptions options) { QueryDescription qd = GetQueryDescription(options.QueryName); FilterOption.SetFilterTokens(options.FilterOptions, qd); var request = new QueryCountRequest { QueryName = options.QueryName, Filters = options.FilterOptions.Select(f => f.ToFilter()).ToList() }; return(request); }
public override int ExecuteQueryCount(QueryCountRequest request) { var req = new QueryRequest { QueryName = request.QueryName, Filters = request.Filters, Columns = new List <Column>() { new Column(this.EntityColumnFactory().BuildColumnDescription(), QueryName) }, Orders = new List <Order>(), Pagination = new Pagination.All(), }; return(Execute(req, GetQueryDescription()).Collection.Count()); }
public abstract int ExecuteQueryCount(QueryCountRequest request);
public int ExecuteQueryCount(QueryCountRequest request) { return(Execute(ExecuteType.ExecuteQueryCount, request.QueryName, request, dqb => dqb.Core.Value.ExecuteQueryCount(request))); }
public virtual int ExecuteQueryCount(QueryCountRequest request) { return(Return(MethodInfo.GetCurrentMethod(), request.QueryName.ToString(), () => DynamicQueryManager.Current.ExecuteQueryCount(request))); }
private static void QueryCountBatch(this QueryCountRequest request, Action <int> onResult, Action @finally) { Finder.Manager.AssertFindable(request.QueryName); Enqueue(request, obj => onResult((int)obj), @finally); }
public static int QueryCount(this QueryCountRequest request) { Finder.Manager.AssertFindable(request.QueryName); return(Server.Return((IDynamicQueryServer s) => s.ExecuteQueryCount(request))); }