public IEnumerable<ReportFolder> GetReportsFolders() { var foldersList = new List<ReportFolder>(); var folder = _assetRepository.GetFolderById(Constants.ReportsRootFolder); var root = new ReportFolder { FolderName = folder.Name.ToUpper(), FolderId = folder.FolderId, SubFoldersList = new List<ReportFolder>() }; foldersList.Add(root); GetFolders(root.SubFoldersList as List<ReportFolder>, folder); return foldersList; }
private void GetFolders(List<ReportFolder> list, Folder folder) { list.AddRange( _assetRepository.GetChildrenFolders(folder.FolderId) .Select(delegate(Folder f) { var subFolder = new ReportFolder { FolderName = f.Name, FolderId = f.FolderId, SubFoldersList = new List<ReportFolder>() }; GetFolders(subFolder.SubFoldersList as List<ReportFolder>, f); return subFolder; }) .ToList() ); }