/// <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);
            }
        }
Пример #2
0
        /// <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);
        }