A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/signumsoftware/framework/commit/641293cd886280a857493e6b9b10361220f19702 below:

Merge branch 'cachedQuery' · signumsoftware/framework@641293c · GitHub

File tree Expand file treeCollapse file tree 69 files changed

+2458

-984

lines changed

Filter options

Expand file treeCollapse file tree 69 files changed

+2458

-984

lines changed Original file line number Diff line number Diff line change

@@ -22,57 +22,27 @@ public static void Start(SchemaBuilder sb, bool googleMapsChartScripts, string[]

22 22 23 23

public static Task<ResultTable> ExecuteChartAsync(ChartRequestModel request, CancellationToken token)

24 24

{

25 -

IDynamicQueryCore core = QueryLogic.Queries.GetQuery(request.QueryName).Core.Value;

26 - 27 -

return miExecuteChartAsync.GetInvoker(core.GetType().GetGenericArguments()[0])(request, core, token);

28 -

}

29 - 30 -

static GenericInvoker<Func<ChartRequestModel, IDynamicQueryCore, CancellationToken, Task<ResultTable>>> miExecuteChartAsync =

31 -

new((req, dq, token) => ExecuteChartAsync<int>(req, (DynamicQueryCore<int>)dq, token));

32 -

static async Task<ResultTable> ExecuteChartAsync<T>(ChartRequestModel request, DynamicQueryCore<T> dq, CancellationToken token)

33 -

{

34 -

using (ExecutionMode.UserInterface())

35 -

{

36 -

var result = await dq.ExecuteQueryAsync(new QueryRequest

37 -

{

38 -

GroupResults = request.HasAggregates(),

39 -

QueryName = request.QueryName,

40 -

Columns = request.GetQueryColumns(),

41 -

Filters = request.Filters,

42 -

Orders = request.GetQueryOrders(),

43 -

Pagination = request.MaxRows.HasValue ? new Pagination.Firsts(request.MaxRows.Value + 1) : new Pagination.All(),

44 -

}, token);

45 - 46 - 47 -

if (request.MaxRows.HasValue && result.Rows.Length == request.MaxRows.Value)

48 -

throw new InvalidOperationException($"The chart request for ${request.QueryName} exceeded the max rows ({request.MaxRows})");

49 - 50 -

return result;

51 -

}

25 +

return QueryLogic.Queries.ExecuteQueryAsync(request.ToQueryRequest(), token);

52 26

}

53 27 28 + 54 29

public static ResultTable ExecuteChart(ChartRequestModel request)

55 30

{

56 -

IDynamicQueryCore core = QueryLogic.Queries.GetQuery(request.QueryName).Core.Value;

31 +

return QueryLogic.Queries.ExecuteQuery(request.ToQueryRequest());

57 32 58 -

return miExecuteChart.GetInvoker(core.GetType().GetGenericArguments()[0])(request, core);

59 33

}

60 34 61 -

static GenericInvoker<Func<ChartRequestModel, IDynamicQueryCore, ResultTable>> miExecuteChart =

62 -

new((req, dq) => ExecuteChart<int>(req, (DynamicQueryCore<int>)dq));

63 -

static ResultTable ExecuteChart<T>(ChartRequestModel request, DynamicQueryCore<T> dq)

35 +

public static QueryRequest ToQueryRequest(this ChartRequestModel request)

64 36

{

65 -

using (ExecutionMode.UserInterface())

37 +

return new QueryRequest

66 38

{

67 -

return dq.ExecuteQuery(new QueryRequest

68 -

{

69 -

GroupResults = request.HasAggregates(),

70 -

QueryName = request.QueryName,

71 -

Columns = request.GetQueryColumns(),

72 -

Filters = request.Filters,

73 -

Orders = request.GetQueryOrders(),

74 -

Pagination = new Pagination.All(),

75 -

});

76 -

}

39 +

QueryName = request.QueryName,

40 +

GroupResults = request.HasAggregates(),

41 +

Columns = request.GetQueryColumns(),

42 +

Filters = request.Filters,

43 +

Orders = request.GetQueryOrders(),

44 +

Pagination = request.MaxRows.HasValue ? new Pagination.Firsts(request.MaxRows.Value + 1) : new Pagination.All(),

45 +

};

77 46

}

47 + 78 48

}

Original file line number Diff line number Diff line change

@@ -133,7 +133,7 @@ public static UserChartEntity RetrieveUserChart(this Lite<UserChartEntity> userC

133 133

}

134 134

}

135 135 136 -

internal static ChartRequestModel ToChartRequest(UserChartEntity userChart)

136 +

internal static ChartRequestModel ToChartRequest(this UserChartEntity userChart)

137 137

{

138 138

var cr = new ChartRequestModel(userChart.Query.ToQueryName())

139 139

{

Original file line number Diff line number Diff line change

@@ -74,7 +74,7 @@ public static void RegisterPublication(PredictorPublicationSymbol publication, P

74 74

return Trainings.TryGetC(lite)?.Context;

75 75

}

76 76 77 -

public static void Start(SchemaBuilder sb, Func<IFileTypeAlgorithm> predictorFileAlgorithm)

77 +

public static void Start(SchemaBuilder sb, IFileTypeAlgorithm predictorFileAlgorithm)

78 78

{

79 79

if (sb.NotDefined(MethodInfo.GetCurrentMethod()))

80 80

{

@@ -143,7 +143,7 @@ public static void Start(SchemaBuilder sb, Func<IFileTypeAlgorithm> predictorFil

143 143

e.AccuracyValidation,

144 144

});

145 145 146 -

FileTypeLogic.Register(PredictorFileType.PredictorFile, predictorFileAlgorithm());

146 +

FileTypeLogic.Register(PredictorFileType.PredictorFile, predictorFileAlgorithm);

147 147 148 148

SymbolLogic<PredictorAlgorithmSymbol>.Start(sb, () => Algorithms.Keys);

149 149

SymbolLogic<PredictorColumnEncodingSymbol>.Start(sb, () => Algorithms.Values.SelectMany(a => a.GetRegisteredEncodingSymbols()).Distinct());

Original file line number Diff line number Diff line change

@@ -72,21 +72,44 @@ public static QueryRequest ToQueryRequest(this UserQueryEntity userQuery)

72 72

return qr;

73 73

}

74 74 75 +

public static QueryRequest ToQueryRequestValue(this UserQueryEntity userQuery, QueryToken? valueToken = null)

76 +

{

77 +

var qn = userQuery.Query.ToQueryName();

78 + 79 +

if (valueToken == null)

80 +

{

81 +

var qd = QueryLogic.Queries.QueryDescription(qn);

82 +

valueToken = QueryUtils.Parse("Count", qd, SubTokensOptions.CanAggregate);

83 +

}

84 + 85 +

var qr = new QueryRequest()

86 +

{

87 +

QueryName = qn,

88 +

GroupResults = userQuery.GroupResults || valueToken is AggregateToken,

89 +

};

90 + 91 +

qr.Filters = userQuery.Filters.ToFilterList();

92 +

qr.Columns = new List<Column> { new Column(valueToken, null) };

93 +

qr.Orders = valueToken is AggregateToken ? new List<Order>() : userQuery.Orders.Select(qo => new Order(qo.Token.Token, qo.OrderType)).ToList();

94 + 95 +

qr.Pagination = userQuery.GetPagination() ?? new Pagination.All();

96 + 97 +

return qr;

98 +

}

99 + 75 100

static List<Column> MergeColumns(UserQueryEntity uq)

76 101

{

77 102

QueryDescription qd = QueryLogic.Queries.QueryDescription(uq.Query.ToQueryName());

78 103 79 -

switch (uq.ColumnsMode)

104 +

var result = uq.ColumnsMode switch

80 105

{

81 -

case ColumnOptionsMode.Add:

82 -

return qd.Columns.Where(cd => !cd.IsEntity).Select(cd => new Column(cd, qd.QueryName)).Concat(uq.Columns.Select(co => ToColumn(co))).ToList();

83 -

case ColumnOptionsMode.Remove:

84 -

return qd.Columns.Where(cd => !cd.IsEntity && !uq.Columns.Any(co => co.Token.TokenString == cd.Name)).Select(cd => new Column(cd, qd.QueryName)).ToList();

85 -

case ColumnOptionsMode.Replace:

86 -

return uq.Columns.Select(co => ToColumn(co)).ToList();

87 -

default:

88 -

throw new InvalidOperationException("{0} is not a valid ColumnOptionMode".FormatWith(uq.ColumnsMode));

89 -

}

106 +

ColumnOptionsMode.Add => qd.Columns.Where(cd => !cd.IsEntity).Select(cd => new Column(cd, qd.QueryName)).Concat(uq.Columns.Select(co => ToColumn(co))).ToList(),

107 +

ColumnOptionsMode.Remove => qd.Columns.Where(cd => !cd.IsEntity && !uq.Columns.Any(co => co.Token.TokenString == cd.Name)).Select(cd => new Column(cd, qd.QueryName)).ToList(),

108 +

ColumnOptionsMode.Replace => uq.Columns.Select(co => ToColumn(co)).ToList(),

109 +

_ => throw new InvalidOperationException("{0} is not a valid ColumnOptionMode".FormatWith(uq.ColumnsMode))

110 +

};

111 + 112 +

return result;

90 113

}

91 114 92 115

private static Column ToColumn(QueryColumnEmbedded co)

Original file line number Diff line number Diff line change

@@ -213,21 +213,6 @@ public override IQueryable<Entity> GetEntitiesFull(QueryEntitiesRequest request)

213 213

return result.TryTake(request.Count);

214 214

}

215 215 216 -

public override DQueryable<object> GetDQueryable(DQueryableRequest request)

217 -

{

218 -

request.Columns.Insert(0, new _EntityColumn(EntityColumnFactory().BuildColumnDescription(), QueryName));

219 - 220 -

DQueryable<T> query = Query

221 -

.ToDQueryable(GetQueryDescription())

222 -

.SelectMany(request.Multiplications)

223 -

.OrderBy(request.Orders)

224 -

.Where(request.Filters)

225 -

.Select(request.Columns)

226 -

.TryTake(request.Count);

227 - 228 -

return new DQueryable<object>(query.Query, query.Context);

229 -

}

230 - 231 216

public override Expression? Expression

232 217

{

233 218

get { return Query.Expression; }

Original file line number Diff line number Diff line change

@@ -69,7 +69,6 @@ public interface IDynamicQueryCore

69 69 70 70

IQueryable<Lite<Entity>> GetEntitiesLite(QueryEntitiesRequest request);

71 71

IQueryable<Entity> GetEntitiesFull(QueryEntitiesRequest request);

72 -

DQueryable<object> GetDQueryable(DQueryableRequest request);

73 72

}

74 73 75 74

@@ -130,7 +129,6 @@ public abstract class DynamicQueryCore<T> : IDynamicQueryCore

130 129 131 130

public abstract IQueryable<Lite<Entity>> GetEntitiesLite(QueryEntitiesRequest request);

132 131

public abstract IQueryable<Entity> GetEntitiesFull(QueryEntitiesRequest request);

133 -

public abstract DQueryable<object> GetDQueryable(DQueryableRequest request);

134 132 135 133 136 134

protected virtual ColumnDescriptionFactory[] InitializeColumns()

@@ -1122,22 +1120,27 @@ public static ResultTable ToResultTable<T>(this DEnumerableCount<T> collection,

1122 1120

{

1123 1121

object[] array = collection.Collection as object[] ?? collection.Collection.ToArray();

1124 1122 1125 -

var columnAccesors = req.Columns.Select(c => (

1126 -

column: c,

1127 -

lambda: Expression.Lambda(c.Token.BuildExpression(collection.Context), collection.Context.Parameter)

1128 -

)).ToList();

1123 +

var isMultiKeyGrupping = req.GroupResults && req.Columns.Count(col => col.Token is not AggregateToken) >= 2;

1129 1124 1130 -

return ToResultTable(array, columnAccesors, collection.TotalElements, req.Pagination);

1131 -

}

1125 +

var rows = collection.Collection.ToArray();

1132 1126 1133 -

public static ResultTable ToResultTable(object[] result, List<(Column column, LambdaExpression lambda)> columnAccesors, int? totalElements, Pagination pagination)

1134 -

{

1135 -

var columnValues = columnAccesors.Select(c => new ResultColumn(

1136 -

c.column,

1137 -

miGetValues.GetInvoker(c.column.Type)(result, c.lambda.Compile()))

1138 -

).ToArray();

1127 +

var columnAccesors = req.Columns.Select(c =>

1128 +

{

1129 +

var expression = Expression.Lambda(c.Token.BuildExpression(collection.Context), collection.Context.Parameter);

1130 + 1131 +

var lambda = expression.Compile();

1132 + 1133 +

var values = miGetValues.GetInvoker(c.Token.Type)(rows, lambda);

1134 + 1135 +

var rc = new ResultColumn(c, values);

1136 + 1137 +

if (c.Token.Type.IsLite() || isMultiKeyGrupping && c.Token is not AggregateToken)

1138 +

rc.CompressUniqueValues = true;

1139 + 1140 +

return rc;

1141 +

}).ToArray();

1139 1142 1140 -

return new ResultTable(columnValues, totalElements, pagination);

1143 +

return new ResultTable(columnAccesors, collection.TotalElements, req.Pagination);

1141 1144

}

1142 1145 1143 1146

static readonly GenericInvoker<Func<object[], Delegate, Array>> miGetValues = new((objs, del) => GetValues<int>(objs, (Func<object, int>)del));

Original file line number Diff line number Diff line change

@@ -162,11 +162,6 @@ public IQueryable<Entity> GetEntitiesFull(QueryEntitiesRequest request)

162 162

return Execute(ExecuteType.GetEntities, request.QueryName, null, dqb => dqb.Core.Value.GetEntitiesFull(request));

163 163

}

164 164 165 -

public DQueryable<object> GetDQueryable(DQueryableRequest request)

166 -

{

167 -

return Execute(ExecuteType.GetDQueryable, request.QueryName, null, dqb => dqb.Core.Value.GetDQueryable(request));

168 -

}

169 - 170 165

public event Func<object, bool, bool>? AllowQuery;

171 166 172 167

public bool QueryAllowed(object queryName, bool fullScreen)

Original file line number Diff line number Diff line change

@@ -95,7 +95,7 @@ public override async Task<ResultTable> ExecuteQueryGroupAsync(QueryRequest requ

95 95

{

96 96

req.Columns.Add(new Column(request.ValueToken, request.ValueToken.NiceName()));

97 97

var result = await Execute(req, GetQueryDescription(), cancellationToken);

98 -

return result.SelectOne(request.ValueToken).Unique(UniqueType.Single);

98 +

return result.SelectOne(request.ValueToken).Unique(UniqueType.SingleOrDefault);

99 99

}

100 100

}

101 101

@@ -129,11 +129,6 @@ public override IQueryable<Lite<Entity>> GetEntitiesLite(QueryEntitiesRequest re

129 129

throw new NotImplementedException();

130 130

}

131 131 132 -

public override DQueryable<object> GetDQueryable(DQueryableRequest request)

133 -

{

134 -

throw new NotImplementedException();

135 -

}

136 - 137 132

public override IQueryable<Entity> GetEntitiesFull(QueryEntitiesRequest request)

138 133

{

139 134

throw new NotImplementedException();

Original file line number Diff line number Diff line change

@@ -625,6 +625,7 @@ public static string GetDefaultValue(ITable table, IColumn column, Replacements

625 625

column.DbType.IsString() ? "''" :

626 626

column.DbType.IsDate() ? "GetDate()" :

627 627

column.DbType.IsGuid() ? "NEWID()" :

628 +

column.DbType.IsTime() ? "'00:00'" :

628 629

"?");

629 630 630 631

string defaultValue = rep.Interactive ? SafeConsole.AskString($"Default value for '{table.Name.Name}.{column.Name}'? ([Enter] for {typeDefault} or 'force' if there are no {(forNewColumn ? "rows" : "nulls")}) ", stringValidator: str => null) : "";

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4