public override object ExecuteQueryValue(QueryValueRequest request) { var req = new QueryRequest { QueryName = request.QueryName, Filters = request.Filters, Columns = new List <Column>(), Orders = new List <Order>(), Pagination = new Pagination.All(), }; if (request.ValueToken == null || request.ValueToken is AggregateToken && ((AggregateToken)request.ValueToken).AggregateFunction == AggregateFunction.Count) { req.Pagination = new Pagination.Paginate(1, 1); req.Columns.Add(new Column(this.EntityColumnFactory().BuildColumnDescription(), QueryName)); return(Execute(req, GetQueryDescription()).TotalElements.Value); } else if (request.ValueToken is AggregateToken) { var parent = request.ValueToken.Parent; req.Columns.Add(new Column(parent, parent.NiceName())); return(Execute(req, GetQueryDescription()).SimpleAggregate((AggregateToken)request.ValueToken)); } else { req.Columns.Add(new Column(request.ValueToken, request.ValueToken.NiceName())); return(Execute(req, GetQueryDescription()).SelectOne(request.ValueToken).Unique(UniqueType.Single)); } }
public override async Task <object> ExecuteQueryValueAsync(QueryValueRequest request, CancellationToken token) { using (TypeAuthLogic.DisableQueryFilter()) { return(await base.ExecuteQueryValueAsync(request, token)); } }
public override async Task <object?> ExecuteQueryValueAsync(QueryValueRequest request, CancellationToken token) { using (SystemTime.Override(request.SystemTime)) { var query = Query.ToDQueryable(GetQueryDescription()) .SelectMany(request.Multiplications) .Where(request.Filters); if (request.ValueToken == null) { return(await query.Query.CountAsync(token)); } if (request.ValueToken is AggregateToken) { return(await query.SimpleAggregateAsync((AggregateToken)request.ValueToken, token)); } if (request.MultipleValues) { return(await query.SelectOne(request.ValueToken).ToListAsync(token)); } return(await query.SelectOne(request.ValueToken).UniqueAsync(UniqueType.SingleOrDefault, token)); } }
public static QueryValueRequest ToRequest(this QueryCountOptions options) { QueryDescription qd = GetQueryDescription(options.QueryName); FilterOption.SetFilterTokens(options.FilterOptions, qd); var request = new QueryValueRequest { QueryName = options.QueryName, Filters = options.FilterOptions.Select(f => f.ToFilter()).ToList() }; return(request); }
protected internal virtual int QueryCount(CountOptions options) { var queryDescription = DynamicQueryManager.Current.QueryDescription(options.QueryName); FilterOption.SetFilterTokens(options.FilterOptions, queryDescription, canAggregate: false); var request = new QueryValueRequest { QueryName = options.QueryName, Filters = options.FilterOptions.Select(f => f.ToFilter()).ToList() }; return((int)DynamicQueryManager.Current.ExecuteQueryCount(request)); }
public override async Task<object> ExecuteQueryValueAsync(QueryValueRequest request, CancellationToken token) { var query = Query.ToDQueryable(GetQueryDescription()) .SelectMany(request.Multiplications) .Where(request.Filters); if (request.ValueToken == null) return await query.Query.CountAsync(token); if (request.ValueToken is AggregateToken) return await query.SimpleAggregateAsync((AggregateToken)request.ValueToken, token); return await query.SelectOne(request.ValueToken).UniqueAsync(UniqueType.Single, token); }
public override object ExecuteQueryValue(QueryValueRequest request) { var query = Query.ToDQueryable(GetQueryDescription()) .SelectMany(request.Multiplications) .Where(request.Filters); if (request.ValueToken == null) return query.Query.Count(); if (request.ValueToken is AggregateToken) return query.SimpleAggregate((AggregateToken)request.ValueToken); return query.SelectOne(request.ValueToken).Unique(UniqueType.Single); }
public override async Task <object?> ExecuteQueryValueAsync(QueryValueRequest request, CancellationToken cancellationToken) { var req = new QueryRequest { QueryName = request.QueryName, Filters = request.Filters, Columns = new List <Column>(), Orders = new List <Order>(), Pagination = new Pagination.All(), }; if (request.ValueToken == null || request.ValueToken is AggregateToken at && at.AggregateFunction == AggregateFunction.Count) { req.Pagination = new Pagination.Paginate(1, 1); req.Columns.Add(new Column(this.EntityColumnFactory().BuildColumnDescription(), QueryName)); var result = await Execute(req, GetQueryDescription(), cancellationToken); return(result.TotalElements !.Value); }
public override object?ExecuteQueryValue(QueryValueRequest request) { using (SystemTime.Override(request.SystemTime)) { var query = Query.ToDQueryable(GetQueryDescription()) .SelectMany(request.Multiplications) .Where(request.Filters); if (request.ValueToken == null) { return(query.Query.Count()); } if (request.ValueToken is AggregateToken) { return(query.SimpleAggregate((AggregateToken)request.ValueToken)); } return(query.SelectOne(request.ValueToken).Unique(UniqueType.SingleOrDefault)); } }
public Task <object?> ExecuteQueryValueAsync(QueryValueRequest request, CancellationToken token) { return(ExecuteAsync(ExecuteType.ExecuteQueryValue, request.QueryName, request, dqb => dqb.Core.Value.ExecuteQueryValueAsync(request, token))); }
public object?ExecuteQueryValue(QueryValueRequest request) { return(Execute(ExecuteType.ExecuteQueryValue, request.QueryName, request, dqb => dqb.Core.Value.ExecuteQueryValue(request))); }
public override object?ExecuteQueryValue(QueryValueRequest request) => Task.Run(() => ExecuteQueryValueAsync(request, CancellationToken.None));
public virtual int ExecuteQueryCount(QueryValueRequest request) { return(Return(MethodInfo.GetCurrentMethod(), request.QueryName.ToString(), () => (int)QueryLogic.Queries.ExecuteQueryCount(request))); }
private static void QueryCountBatch(this QueryValueRequest request, Action <int> onResult, Action @finally) { Finder.Manager.AssertFindable(request.QueryName); Enqueue(request, obj => onResult((int)obj), @finally); }
public static int QueryCount(this QueryValueRequest request) { Finder.Manager.AssertFindable(request.QueryName); return(Server.Return((IDynamicQueryServer s) => s.ExecuteQueryCount(request))); }
public virtual int ExecuteQueryCount(QueryValueRequest request) { return(Return(MethodInfo.GetCurrentMethod(), request.QueryName.ToString(), () => (int)DynamicQueryManager.Current.ExecuteQueryCount(request))); }