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); }
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); }
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); }