private IChartOfAccountChild findChildById(IChartOfAccountChild group, string childId)
        {
            if (group == null)
            {
                return null;
            }

            if (group.id == childId)
            {
                return group;
            }

            var accountGroup = group as AccountGroup;
            if (accountGroup != null)
            {
                foreach (var child in accountGroup.children)
                {
                    var childGroup = findChildById(child, childId);
                    if (childGroup != null)
                    {
                        return childGroup;
                    }
                }
            }

            return null;
        }
        private IChartOfAccountChild FindChildById(IChartOfAccountChild group, string id)
        {
            if (group.Id == id)
            {
                return group;
            }

            var accountGroup = group as AccountGroup;
            if (accountGroup != null)
            {
                foreach (var child in accountGroup.Children)
                {
                    var childGroup = FindChildById(child, id);
                    if (childGroup != null)
                    {
                        return childGroup;
                    }
                }
            }

            return null;
        }