public TableColumn GetTableColumn(InputColumn[] inputColumns) { var tableColumn = new TableColumn(); this.CopyProperties(tableColumn, true); if (ChildColumns != null && ChildColumns.Count > 0) { tableColumn.ChildColumns = new TableColumns(); foreach (var childColumn in ChildColumns.OrderBy(c => c.Position).Where(c => c.IsValid)) { tableColumn.ChildColumns.Add(childColumn.GetTableColumn(inputColumns)); } } var topParent = this; if (topParent.ParentColumn != null) { topParent = topParent.ParentColumn; } tableColumn.ReferenceTable = topParent.DatalinkTableKey.ToString(); var column = inputColumns?.SingleOrDefault(c => c.Name == tableColumn.Name); if (column != null) { tableColumn.DefaultValue = column.Value; } return(tableColumn); }
internal void AddColumn(Column item) { item.pColumn = this; if (ChildColumns == null) { ChildColumns = new List <Column>(); ChildColumns.Add(item); } else { int ii = ChildColumns.FindIndex(x => x.Index > item.Index); if (ii > 0) { ChildColumns.Insert(ii, item); } else { ChildColumns.Add(item); } } }
IEnumerable <IExportColumn> IExportColumn.GetChilds() { return(ChildColumns.Cast <IExportColumn>()); }