Beispiel #1
0
        public void RegisterFolderItemsRecursive(OwnedFolder folder)
        {
            RegisterObject(folder);
            var items = folder.Items;

            foreach (var item in items)
            {
                if (item is OwnedFolder)
                {
                    RegisterFolderItemsRecursive(item as OwnedFolder);
                }
                else if (item is ExecutionList)
                {
                    var subItems = item.SearchByTQL("=>SUBPARTS:ExecutionEntry");
                    subItems.AddRange(item.SearchByTQL("=>SUBPARTS:ExecutionTestCaseLog"));
                    foreach (var subItem in subItems)
                    {
                        RegisterObject(subItem);
                    }
                }
                else
                {
                    RegisterObject(item);
                }
            }
            items = null;
        }
Beispiel #2
0
        private IEnumerable <ReportableObject[]> GetReportableObjectsForFolder(OwnedFolder folder, IEnumerable <IConverter> converters)
        {
            List <ReportableObject> objects = new List <ReportableObject>();

            if (this.IsAborted)
            {
                yield break;
            }
            foreach (var converter in converters)
            {
                if (this.IsAborted)
                {
                    yield break;
                }
                string converterTypeName = converter.GetType().GetCustomAttribute <ConvertedTypeAttribute>().ConvertedType.Name;
                lock (syncRoot)
                {
                    message = $"Retrieving {converterTypeName}";
                }
                List <pe.PersistableObject> convertableObjects = folder.SearchByTQL($"=>SUBPARTS:{converterTypeName}");
                lock (syncRoot)
                {
                    message = $"Saving {converterTypeName}";
                }
                yield return(convertableObjects.Select(x => converter.Convert(x)).ToArray());
            }
            //var subfolders = folder.GetAllSubFolders().Cast<OwnedFolder>();
            //foreach (var subfolder in subfolders)
            //{

            //    objects.AddRange(GetReportableObjectsForFolder(subfolder, converters));
            //}
            //var items = folder.Items.Cast<TCObject>();
            //foreach (var item in items)
            //{
            //    if (this.IsAborted)
            //        return new ReportableObject[] { };

            //    var converter = converters.FirstOrDefault(x => x.GetType().GetCustomAttribute<ConvertedTypeAttribute>().ConvertedType == item.GetType());
            //    if (converter == null)
            //        continue;
            //    objects.Add(ConvertObject(item, converter));
            //}
        }