public override int ExecuteQueryCount(QueryCountRequest request)
 {
     return(Query.ToDQueryable(GetQueryDescription())
            .SelectMany(request.Multiplications)
            .Where(request.Filters)
            .Query
            .Count());
 }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        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());
        }
Esempio n. 6
0
 public abstract int ExecuteQueryCount(QueryCountRequest request);
Esempio n. 7
0
 public int ExecuteQueryCount(QueryCountRequest request)
 {
     return(Execute(ExecuteType.ExecuteQueryCount, request.QueryName, request, dqb => dqb.Core.Value.ExecuteQueryCount(request)));
 }
Esempio n. 8
0
 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)));
 }