private void AddDateTimeColumnsByFormat(string dateTimeFormat) { SortedDictionary <int, string> dateTimeFormats = GetSortedDateTimeFormats(dateTimeFormat); int index = 0; foreach (int key in dateTimeFormats.Keys) { var format = dateTimeFormats[key]; string alias = "DatePart" + index; EntitySchemaDatePartQueryFunctionInterval interval = DashboardDataUtils.GetDatePartInterval(format); EntitySchemaQueryExpression columnExpression = EntitySchemaQuery.CreateSchemaColumnExpression(Esq.RootSchema, ColumnPath); columnExpression.UId = Guid.NewGuid(); var queryFunction = new EntitySchemaDatePartQueryFunction(Esq, interval, columnExpression); queryFunction.SpecifyQueryAlias(alias); columnExpression.ParentQuery = queryFunction.ParentQuery; var esqExpression = new EntitySchemaQueryExpression(queryFunction) { UId = Guid.NewGuid() }; EntitySchemaQueryColumn column = Esq.AddColumn(esqExpression.Function); var map = new Dictionary <string, object>(); map["format"] = format; map["valueAlias"] = alias; entityColumnsMap[alias] = map; if (OrderByGroupField) { ApplyColumnOrder(column); } index++; } }
private EntitySchemaQueryFilter GetDatePartFilter(EntitySchemaQueryExpression columnExpression, int datePartValue, EntitySchemaDatePartQueryFunctionInterval interval) { var queryFunction = new EntitySchemaDatePartQueryFunction(Esq, interval, columnExpression); var filter = new EntitySchemaQueryFilter(FilterComparisonType.Equal) { LeftExpression = new EntitySchemaQueryExpression(queryFunction) }; EntitySchemaQueryExpression rightExpression = EntitySchemaQuery.CreateParameterExpression(datePartValue); filter.RightExpressions.Add(rightExpression); return(filter); }