示例#1
0
        private void AddQueryColumns()
        {
            entityColumnsMap = new Dictionary <string, object>();
            EntitySchema entitySchema             = UserConnection.EntitySchemaManager.GetInstanceByName(SchemaName);
            string       primaryDisplayColumnName = entitySchema.FindPrimaryDisplayColumnName();
            string       primaryKeyColumnName     = entitySchema.GetPrimaryColumnName();
            string       primaryColumnAlias       = string.Empty;

            foreach (JObject columnItem in _columns)
            {
                string columnPath = DashboardDataUtils.GetColumnPath(columnItem);
                if (entityColumnsMap.ContainsKey(columnPath))
                {
                    continue;
                }
                EntitySchemaQueryColumn     column = AddQueryColumn(columnItem, columnPath);
                Dictionary <string, object> map    = MapColumn(column);
                entityColumnsMap[columnPath] = map;
                if (columnPath == primaryKeyColumnName)
                {
                    primaryColumnAlias = (string)map["valueAlias"];
                }
            }
            if (primaryColumnAlias.IsNullOrEmpty() && primaryKeyColumnName.IsNotNullOrEmpty())
            {
                EntitySchemaQueryColumn primaryKeyColumn = Esq.AddColumn(primaryKeyColumnName);
                entityColumnsMap[primaryKeyColumnName] = MapColumn(primaryKeyColumn);
            }
        }
        private JArray GetColumns()
        {
            var          columns                  = new JArray();
            JArray       items                    = GetGridConfigColumns();
            EntitySchema entitySchema             = UserConnection.EntitySchemaManager.GetInstanceByName(GetSchemaName());
            string       primaryDisplayColumnName = entitySchema.FindPrimaryDisplayColumnName();
            string       primaryKeyColumnName     = entitySchema.GetPrimaryColumnName();
            string       primaryColumnAlias       = string.Empty;

            foreach (JObject columnItem in items)
            {
                string columnPath    = DashboardDataUtils.GetColumnPath(columnItem);
                string columnCaption = columnItem.Value <string>("caption");
                if (string.IsNullOrEmpty(columnCaption))
                {
                    columnCaption = columnPath;
                }
                var columnConfig = new JObject();
                columnConfig["name"]     = columnPath;
                columnConfig["caption"]  = columnCaption;
                columnConfig["type"]     = columnItem.Value <string>("type");
                columnConfig["position"] = columnItem["position"];
                if (string.IsNullOrEmpty(columnItem.Value <string>("dataValueType")))
                {
                    Dictionary <string, object> map = (Dictionary <string, object>)selectBuilder.EntityColumnsMap[columnPath];
                    var type = (DataValueType)map["dataValueType"];
                    columnConfig["dataValueType"] = (int)Terrasoft.Nui.ServiceModel.Extensions.DataValueTypeExtension.ToEnum(type);
                }
                else
                {
                    columnConfig["dataValueType"] = columnItem.Value <int>("dataValueType");
                }
                if (columnPath != primaryDisplayColumnName)
                {
                    columnConfig["referenceSchemaName"] = columnItem.Value <string>("referenceSchemaName");
                }
                columns.Add(columnConfig);
            }
            return(columns);
        }
示例#3
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;
                    }
                }
            }
        }