private IEnumerable<string> getDirectories(ITemplate template, ITemplateRegistry templateRegistry, bool includeDirectAncestor)
        {
            foreach (var directory in _builder.BuildBy(template.FilePath, template.RootPath, includeDirectAncestor))
            {
                yield return directory;
            }

            if (template.FromHost())
            {
                yield break;
            }

            var hostTemplate = templateRegistry.FromHost().FirstOrDefault();
            if (hostTemplate == null)
            {
                yield break;
            }

            var hostRoot = hostTemplate.RootPath;
            if (includeDirectAncestor)
            {
                yield return hostRoot;
            }

            foreach (var sharedFolder in _builder.SharedFolderNames)
            {
                yield return Path.Combine(hostRoot, sharedFolder);
            }
        }
        private IEnumerable <string> getDirectories(ITemplate template, ITemplateRegistry templateRegistry, bool includeDirectAncestor)
        {
            foreach (var directory in _builder.BuildBy(template.FilePath, template.RootPath, includeDirectAncestor))
            {
                yield return(directory);
            }

            if (template.FromHost())
            {
                yield break;
            }

            var hostTemplate = templateRegistry.FromHost().FirstOrDefault();

            if (hostTemplate == null)
            {
                yield break;
            }

            var hostRoot = hostTemplate.RootPath;

            if (includeDirectAncestor)
            {
                yield return(hostRoot);
            }

            foreach (var sharedFolder in _builder.SharedFolderNames)
            {
                yield return(Path.Combine(hostRoot, sharedFolder));
            }
        }