private TemplateFolder GetTemplatesDeep(string rootPath) { var metaItemMapper = new TemplateMetaItemMapper(new HttpRequestWrapper(HttpContext.Current.Request)); var fldrMapper = new TemplateFolderMapper(); // get root item - go deeper if are sub items // otherwise, assume empty folder or bad path Item root = this.Database.GetItem(rootPath); TemplateFolder result = fldrMapper.Map(root); if (root.HasChildren) { // grab folders, add, traverse deeper var fldrs = root .Axes .GetDescendants() .Where(x => this.FolderTemplates.Contains(x.TemplateID)) .Select(x => fldrMapper.Map(x)) .ToList(); foreach (var f in fldrs) { result.Folders.Add(this.GetTemplatesDeep(f.Path)); } // grab templates, add only var templates = root .Children .Where(x => !this.FolderTemplates.Contains(x.TemplateID)) .Select(x => metaItemMapper.Map(x)) .ToList(); foreach (var r in templates) { result.Templates.Add(r); } } return(result); }
private TemplateFolder GetTemplatesDeep(string rootPath) { var metaItemMapper = new TemplateMetaItemMapper(new HttpRequestWrapper(HttpContext.Current.Request)); var fldrMapper = new TemplateFolderMapper(); // get root item - go deeper if are sub items // otherwise, assume empty folder or bad path Item root = this.Database.GetItem(rootPath); TemplateFolder result = fldrMapper.Map(root); if (root.HasChildren) { // grab folders, add, traverse deeper var fldrs = root .Axes .GetDescendants() .Where(x => this.FolderTemplates.Contains(x.TemplateID)) .Select(x => fldrMapper.Map(x)) .ToList(); foreach (var f in fldrs) { result.Folders.Add(this.GetTemplatesDeep(f.Path)); } // grab templates, add only var templates = root .Children .Where(x => !this.FolderTemplates.Contains(x.TemplateID)) .Select(x => metaItemMapper.Map(x)) .ToList(); foreach (var r in templates) { result.Templates.Add(r); } } return result; }