private void EnqueueWritingJobForAllChilds()

in AdlsDotNetSDK/FileProperties/Jobs/EnumerateAndGetPropertyJob.cs [96:134]


        private void EnqueueWritingJobForAllChilds(PropertyTreeNode currentNode)
        {
            try
            {
                if (currentNode.DepthLevel > _manager.MaxDepth - 1)
                {
                    return;
                }
                // Do not show the children's acl information since parent has a consistent acl and user want to see consistent acl only
                bool skipChildAclOuput = _manager.GetAclProperty && _manager.HideConsistentAclTree && currentNode.AllChildSameAcl;
                // If we are viewing acl only then no need to show the children since parent has consistent acl
                if (skipChildAclOuput && !_manager.GetSizeProperty)
                {
                    return;
                }
                foreach (var dirNode in currentNode.ChildDirectoryNodes)
                {
                    dirNode.SkipAclOutput = skipChildAclOuput;
                    _manager.PropertyWriterQueue.Add(new DumpFilePropertyJob(_manager, dirNode));
                }
                
                if (_manager.DisplayFiles)
                {
                    foreach (var fileNode in currentNode.ChildFileNodes)
                    {
                        fileNode.SkipAclOutput = skipChildAclOuput;
                        _manager.PropertyWriterQueue.Add(new DumpFilePropertyJob(_manager, fileNode));
                    }
                }
            }
            finally
            {
                if (!_manager.DontDeleteChildNodes)
                {
                    currentNode.ChildDirectoryNodes = null;
                    currentNode.ChildFileNodes = null;
                }
            }
        }