Example #1
0
        private EntitySchemaQueryColumn AddQueryColumn(JObject columnItem, string columnPath)
        {
            columnPath = DashboardDataUtils.ClearColumnPathSuffix(columnPath);
            string          filterData            = columnItem.Value <string>("serializedFilter");
            string          aggregationType       = columnItem.Value <string>("aggregationType");
            AggregationType columnAggregationType = AggregationType.None;

            if (!string.IsNullOrEmpty(aggregationType))
            {
                columnAggregationType = (AggregationType)Enum.Parse(typeof(AggregationType),
                                                                    aggregationType);
            }
            EntitySchemaQueryColumn column;

            if (columnAggregationType != AggregationType.None && !string.IsNullOrEmpty(filterData))
            {
                EntitySchemaQuery subQuery;
                column = Esq.AddColumn(columnPath, columnAggregationType.ToStrict(), out subQuery);
                var dashboardData = new BaseDashboardItemSelectBuilder(UserConnection, subQuery);
                dashboardData.AddFilterByJson(filterData);
            }
            else
            {
                column = Esq.AddColumn(columnPath);
                if (!string.IsNullOrEmpty(aggregationType))
                {
                    column.SummaryType = columnAggregationType;
                }
            }
            SetColumnOrder(columnItem, column);
            return(column);
        }
Example #2
0
        private void SetReferenceSchemaNames(string rootSchemaName, JArray gridColumns)
        {
            EntitySchema entitySchema = null;

            foreach (JObject columnItem in gridColumns)
            {
                if (columnItem.Value <int>("dataValueType") == (int)Terrasoft.Nui.ServiceModel.DataContract.DataValueType.Lookup &&
                    string.IsNullOrEmpty(columnItem.Value <string>("referenceSchemaName")))
                {
                    string columnPath = DashboardDataUtils.GetColumnPath(columnItem);
                    columnPath = DashboardDataUtils.ClearColumnPathSuffix(columnPath);
                    if (entitySchema == null)
                    {
                        entitySchema = UserConnection.EntitySchemaManager.GetInstanceByName(rootSchemaName);
                    }
                    EntitySchemaColumn column = entitySchema.FindSchemaColumnByPath(columnPath);
                    if (column.ReferenceSchema != null)
                    {
                        columnItem["referenceSchemaName"] = column.ReferenceSchema.Name;
                    }
                }
            }
        }