コード例 #1
0
        public DataTable CreateDataTableForEntities(MetaEntityClassPropertyType typesToInclude = MetaEntityClassPropertyType.value | MetaEntityClassPropertyType.valueCollection)
        {
            DataTable output = new DataTable();

            output.Columns.Add(nameof(MetaEntity.name), typeof(String)).SetHeading("Name");
            output.Columns.Add(nameof(MetaEntity.EntityClassName), typeof(String)).SetHeading("Class");

            CreateDataTable(output, typesToInclude);

            return(output);
        }
コード例 #2
0
        public void CreateDataTableRow(DataTable output, MetaEntity entity, MetaEntityClassPropertyType typesToInclude = MetaEntityClassPropertyType.value | MetaEntityClassPropertyType.valueCollection)
        {
            var types = typesToInclude.getEnumListFromFlags <MetaEntityClassPropertyType>();
            var dr    = output.NewRow();

            if (output.Columns.Contains(nameof(MetaEntity.name)))
            {
                dr[nameof(MetaEntity.name)] = entity.name;
            }
            if (output.Columns.Contains(nameof(MetaEntity.EntityClassName)))
            {
                dr[nameof(MetaEntity.EntityClassName)] = entity.EntityClassName;
            }


            foreach (var property in Properties)
            {
                if (types.Contains(property.type))
                {
                    String column_name = property.GetSelectExpression();

                    if (output.Columns.Contains(column_name))
                    {
                        var setter = entity.Setters.FirstOrDefault(x => x.name.Equals(property.name));
                        if (setter != null)
                        {
                            if (property.type.HasFlag(MetaEntityClassPropertyType.collection))
                            {
                                MetaPropertyInstruction instruction = new MetaPropertyInstruction(setter, property);
                                dr[column_name] = instruction.value;
                            }
                            else
                            {
                                if (setter.Value != null)
                                {
                                    dr[column_name] = setter.Value;
                                }
                            }
                        }
                    }
                }
            }

            output.Rows.Add(dr);
        }
コード例 #3
0
        public DataTable CreateDataTable(DataTable output, MetaEntityClassPropertyType typesToInclude = MetaEntityClassPropertyType.value | MetaEntityClassPropertyType.valueCollection)
        {
            if (output == null)
            {
                output = new DataTable();
            }

            var types = typesToInclude.getEnumListFromFlags <MetaEntityClassPropertyType>();

            MetaEntityNamespace Namespace = Parent as MetaEntityNamespace;

            String namespacePath = this.GetSelectExpression();

            foreach (var property in Properties)
            {
                if (types.Contains(property.type))
                {
                    String column_name  = property.GetSelectExpression();
                    Type   propertyType = property.GetValueType();

                    if (!output.Columns.Contains(column_name))
                    {
                        if (property.type.HasFlag(MetaEntityClassPropertyType.collection))
                        {
                            propertyType = typeof(String);
                        }
                        else
                        {
                        }
                        output.Columns.Add(column_name, propertyType).SetHeading(property.name).SetGroup(namespacePath);
                    }
                }
            }

            return(output);
        }