//// custom codes

        public virtual async Task <string> GetNextChildCodeAsync(Guid?parentId)
        {
            var lastChild = await GetLastChildOrNullAsync(parentId);

            if (lastChild == null)
            {
                var parentCode = parentId != null ? await GetCodeAsync(parentId.Value) : null;

                return(SysFile.AppendCode(parentCode, SysFile.CreateCode(1)));
            }

            return(SysFile.CalculateNextCode(lastChild.Code));
        }