/// <summary> /// Initializes a new instance of the <see cref="LevelMutableCore"/> class. /// </summary> /// <param name="level"> /// The level. /// </param> public LevelMutableCore(ILevelObject level) : base(level) { if (level.HasChild()) { this.childLevel = new LevelMutableCore(level.ChildLevel); } if (level.CodingFormat != null) { this.codingFormat = new TextFormatMutableCore(level.CodingFormat); } }
/// <summary> /// Insert levels to Mapping Store database. /// </summary> /// <param name="state"> /// The state. /// </param> /// <param name="rootLevel"> /// The root level. /// </param> /// <param name="parentHierarchyID"> /// The parent hierarchy id. /// </param> /// <returns> /// The <see cref="IDictionary{String, Long}"/> with the level id as key and the mapping store level primary key as value. /// </returns> private IDictionary <string, long> InsertLevels(DbTransactionState state, ILevelObject rootLevel, long parentHierarchyID) { var levelIds = new Dictionary <string, long>(StringComparer.Ordinal); ILevelObject level = rootLevel; long parentLevel = 0; while (level != null) { var id = this.InsertLevel(state, level, parentHierarchyID, parentLevel); levelIds.Add(level.Id, id); parentLevel = id; level = level.HasChild() ? level.ChildLevel : null; } return(levelIds); }