public DataManipulationTargetColumnPivot( int targetOrder, QsiTableColumn targetColumn, int declaredOrder, QsiTableColumn declaredColumn) { TargetOrder = targetOrder; TargetColumn = targetColumn; DeclaredOrder = declaredOrder; DeclaredColumn = declaredColumn; }
private static IEnumerable <QsiTableColumn> FlattenReferenceColumnsInternal(QsiTableColumn column, HashSet <QsiTableColumn> visited) { foreach (var reference in column.References.Where(r => !visited.Contains(r))) { visited.Add(reference); yield return(reference); foreach (var childReference in FlattenReferenceColumnsInternal(reference, visited)) { yield return(childReference); } visited.Remove(reference); } }
private QsiColumnTreeItem(QsiTableColumn column, int depth, HashSet <QsiTableColumn> recursiveTracker) { Depth = depth; Column = column; if (recursiveTracker.Contains(column)) { IsRecursive = true; return; } recursiveTracker.Add(column); Items = column.References .Select(c => new QsiColumnTreeItem(c, depth + 1, recursiveTracker)) .ToArray(); recursiveTracker.Remove(column); }
protected virtual QsiIdentifier ResolveCompoundColumnName(TableCompileContext context, IQsiDerivedTableNode table, IQsiColumnNode column, QsiTableColumn refColumn) { return(refColumn.Name); }
public static IEnumerable <QsiTableColumn> FlattenReferenceColumns(QsiTableColumn column) { return(FlattenCore(column, c => c.References, x => IsReferenceType(x.Parent.Type))); }
public static IEnumerable <QsiTableColumn> FlattenColumns(QsiTableColumn column) { return(FlattenCore(column, c => c.References, _ => true)); }
public QsiColumnTreeItem(QsiTableColumn column, int depth = 0) : this(column, depth, new HashSet <QsiTableColumn>()) { }
public static IEnumerable <QsiTableColumn> FlattenReferenceColumns(QsiTableColumn column) { return(FlattenReferenceColumnsInternal(column, new HashSet <QsiTableColumn>())); }