Esempio n. 1
0
        public Folder GetExistingItems(string folder)
        {
            CatalogItem[] items      = _sourceCommunicator.GetExistingReports(folder);
            Folder        rootFolder = new Folder();

            rootFolder.Name = folder;
            var           itemsList = items.ToList();
            List <Report> reports   = new List <Report>();
            List <Folder> folders   = new List <Folder>();

            folders.Add(rootFolder);
            foreach (var item in itemsList)
            {
                if (item.Type == ItemTypeEnum.Report)
                {
                    var r = new Report(item, _sourceCommunicator.GetDataSources(item.Path));
                    reports.Add(r);
                }
                else if (item.Type == ItemTypeEnum.Folder)
                {
                    var f = new Folder(item);
                    folders.Add(f);
                }
            }
            foreach (var currentFolder in folders.Where(f => f.Depth > 1).OrderBy(f => f.Depth))
            {
                FindParentFolder(currentFolder, rootFolder);
            }
            foreach (var report in reports)
            {
                FindParentFolder(report, rootFolder);
            }
            return(rootFolder);
        }