Beispiel #1
0
        static void BuildTestCTE(UserSecurityContext context)
        {
            OrganizationHierarchyManager.Instance.Initialize();
            Console.WriteLine("OHM state: " + OrganizationHierarchyManager.Instance.State);
            OrganizationHierarchyManager.Instance.Start();
            Console.WriteLine("OHM state: " + OrganizationHierarchyManager.Instance.State);

            if (OrganizationHierarchyManager.Instance.State != Osrs.Runtime.RunState.Running)
            {
                Console.WriteLine("Cannot test OHM - not running");
                return;
            }
            CompoundIdentity           systemId = new CompoundIdentity(Guid.NewGuid(), Guid.NewGuid());
            IEnumerable <Organization> orgs     = OrganizationManager.Instance.GetOrganizationProvider(context).Get("Pacific Northwest National Lab");
            Organization owner = null;

            foreach (Organization cur in orgs)
            {
                owner = cur;
                break;
            }

            OrganizationHierarchyProviderBase prov = OrganizationHierarchyManager.Instance.GetProvider(context);
            OrganizationHierarchy             hier = null;

            if (prov.Exists("temp"))
            {
                hier = prov.Get("temp");
                if (hier != null)
                {
                    Console.WriteLine("Fetched hierarchy");
                }
            }

            if (hier == null)
            {
                hier = prov.Create("temp", owner);
                if (hier != null)
                {
                    Console.WriteLine("Created hierarchy");
                }
            }

            if (hier != null)
            {
                List <CompoundIdentity> idList = new List <CompoundIdentity>();

                for (int i = 0; i <= 100; i++)
                {
                    idList.Add(new CompoundIdentity(Guid.NewGuid(), Guid.NewGuid()));
                }

                for (int i = 0; i < 10; i++)
                {
                    hier.Add(idList[i], idList[i + 10]);
                    hier.Add(idList[i + 10], idList[i + 20]);
                    hier.Add(idList[i + 20], idList[i + 30]);
                    hier.Add(idList[i + 30], idList[i + 40]);
                    hier.Add(idList[i + 40], idList[i + 50]);
                    hier.Add(idList[i + 50], idList[i + 60]);
                    hier.Add(idList[i + 60], idList[i + 70]);
                    hier.Add(idList[i + 70], idList[i + 80]);
                    hier.Add(idList[i + 80], idList[i + 90]);
                }

                //Console.WriteLine("Targeting org: 0403e3d2-b8a2-42cf-80fc-848fcf86aaad,b32cad24-9338-45f4-8d99-bd1aeb43b804");
                Console.WriteLine("Targeting org: " + idList[30].DataStoreIdentity.ToString() + "," + idList[30].Identity.ToString());
                Console.WriteLine("Getting children - no limit specified");
                IEnumerable <CompoundIdentity> orgIds = hier.GetChildrenIds(idList[30]);
                //IEnumerable<CompoundIdentity> orgIds = hier.GetChildrenIds(new CompoundIdentity(new Guid("0403e3d2-b8a2-42cf-80fc-848fcf86aaad"), new Guid("b32cad24-9338-45f4-8d99-bd1aeb43b804")));
                int ct = 0;
                foreach (CompoundIdentity curId in orgIds)
                {
                    //Console.Write(curId.DataStoreIdentity.ToString() + "," + curId.Identity.ToString()+" ");
                    ct++;
                }
                Console.WriteLine();
                Console.WriteLine("Got " + ct + " items");

                Console.WriteLine("Getting children - max limit specified");
                orgIds = hier.GetChildrenIds(idList[30], true);
                //orgIds = hier.GetChildrenIds(new CompoundIdentity(new Guid("0403e3d2-b8a2-42cf-80fc-848fcf86aaad"), new Guid("b32cad24-9338-45f4-8d99-bd1aeb43b804")), true);
                ct = 0;
                foreach (CompoundIdentity curId in orgIds)
                {
                    //Console.Write(curId.DataStoreIdentity.ToString() + "," + curId.Identity.ToString()+" ");
                    ct++;
                }
                Console.WriteLine();
                Console.WriteLine("Got " + ct + " items");


                if (prov.Delete(hier))
                {
                    Console.WriteLine("Deleted hierarchy");
                }
                else
                {
                    Console.WriteLine("Failed deleting hierarchy");
                }
            }
            else
            {
                Console.WriteLine("Failed to create hierarchy");
            }
        }