Beispiel #1
0
        /// <summary>
        /// Adds the column and child columns into the columns collection.
        /// </summary>
        /// <param name="column"></param>
        /// <param name="columns"></param>
        /// <param name="parentColumnKey"></param>
        private void AddColumns(DexihDatalinkColumn column, IDictionary <long, DexihDatalinkColumn> columns, long?parentColumnKey = null)
        {
            if (column != null && !columns.ContainsKey(column.Key))
            {
                if (column.ParentDatalinkColumnKey == null)
                {
                    column.ParentDatalinkColumnKey = parentColumnKey;
                }

                columns[column.Key] = column;

                foreach (var childColumn in column.ChildColumns)
                {
                    AddColumns(childColumn, columns, column.Key);
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// Resets the childcolumns of a column with unique column instances.
 /// </summary>
 /// <param name="column"></param>
 /// <param name="columns"></param>
 private void ResetChildColumns(DexihDatalinkColumn column, IReadOnlyDictionary <long, DexihDatalinkColumn> columns)
 {
     if (column.ChildColumns != null && column.ChildColumns.Any())
     {
         var childColumns = new HashSet <DexihDatalinkColumn>();
         foreach (var childColumn in column.ChildColumns)
         {
             if (columns.ContainsKey(childColumn.Key))
             {
                 childColumns.Add(columns[childColumn.Key]);
             }
             else
             {
                 childColumns.Add(childColumn);
             }
             ResetChildColumns(childColumn, columns);
         }
         column.ChildColumns = childColumns;
     }
 }