private static void Import(CremaDataTable dataTable, SerializationTable serializedTable) { dataTable.Tags = serializedTable.Tags; dataTable.CategoryPath = serializedTable.CategoryPath; dataTable.TableName = serializedTable.TableName; dataTable.Comment = serializedTable.Comment; var columns = serializedTable.Columns.Where(item => item.Name != CremaSchema.__RelationID__ && item.Name != CremaSchema.__ParentID__); foreach (var item in columns) { var dataColumn = dataTable.Columns.Add(item.Name); Import(dataColumn, item); } foreach (var item in columns) { var dataColumn = dataTable.Columns[item.Name]; dataColumn.IsKey = item.IsKey; } foreach (var item in columns) { var dataColumn = dataTable.Columns[item.Name]; dataColumn.Unique = item.IsUnique; } dataTable.AcceptChanges(); }
public static CremaDataTable Create(SerializationTable serializedTable, SerializationType[] serializedTypes) { if (serializedTypes == null) { throw new ArgumentNullException(nameof(serializedTypes)); } var dataTable = new CremaDataTable(); Import(dataTable, serializedTable); return(dataTable); }
private static void ImportRow(CremaDataTable dataTable, SerializationTable serializedTable) { dataTable.BeginLoad(); foreach (var item in serializedTable.Rows) { if (dataTable.Parent == null) { var dataRow = dataTable.NewRow(); ImportRow(dataRow, item, serializedTable.Columns); dataTable.Rows.Add(dataRow); } else { var parentRow = dataTable.Parent.Rows.First(i => i.RelationID == item.ParentID); var dataRow = dataTable.NewRow(parentRow); ImportRow(dataRow, item, serializedTable.Columns); dataTable.Rows.Add(dataRow); } } dataTable.EndLoad(); }
public static CremaDataTable Create(SerializationTable serializedTable) { return(Create(serializedTable, new SerializationType[] { })); }