Exemple #1
0
        /// <summary>
        /// 生成内码。
        /// </summary>
        /// <param name="keyId"></param>
        /// <param name="order"></param>
        /// <param name="position"></param>
        /// <returns></returns>
        private string GenerateInnerId(string keyId, PropertyValue order, EntityTreePosition position)
        {
            var sOrder = order.ToString();

            return(position == EntityTreePosition.Children || keyId.Length < metaTree.SignLength ?
                   keyId + new string('0', metaTree.SignLength - sOrder.Length) + sOrder :
                   GetPreviousKey(keyId) + new string('0', metaTree.SignLength - sOrder.Length) + sOrder);
        }
        /// <summary>
        /// 生成内码。
        /// </summary>
        /// <param name="keyId"></param>
        /// <param name="order"></param>
        /// <param name="position"></param>
        /// <returns></returns>
        private string GenerateInnerId(string keyId, PropertyValue order, EntityTreePosition position)
        {
            var sOrder = order.ToString();

            if (metaTree.SignLength - sOrder.Length < 0)
            {
                throw new EntityTreeCodeOutOfRangeException("末级编码超出预设的" + metaTree.SignLength + "位编码。");
            }

            return(position == EntityTreePosition.Children || keyId.Length < metaTree.SignLength ?
                   keyId + new string('0', metaTree.SignLength - sOrder.Length) + sOrder :
                   GetPreviousKey(keyId) + new string('0', metaTree.SignLength - sOrder.Length) + sOrder);
        }