Example #1
0
        public void Load(ITICHierarchy pHierarchy)
        {
            if (pHierarchy == null)
            {
                return;
            }

            using (IDataReader reader = DbHelper.ExecuteReader(_transaction, _query.SelectAllQuery))
            {
                while (reader.Read())
                {
                    using (EventWaitHandle synchronizer = new AutoResetEvent(false))
                    {
                        Task <InfrastructureLookup>     iTask = Task.Factory.StartNew <InfrastructureLookup>(LoadInfrastructure, new HierarchyParallelContext(reader, pHierarchy));
                        Task <CapabilityLookup>         cTask = Task.Factory.StartNew <CapabilityLookup>(LoadCapability, new HierarchyParallelContext(reader, pHierarchy));
                        Task <LogicalSystemGroupLookup> lTask = Task.Factory.StartNew <LogicalSystemGroupLookup>(LoadLogicalSystemGroup, new HierarchyParallelContext(reader, pHierarchy));
                        Task.Factory.ContinueWhenAll(new Task[] { iTask, cTask, lTask }, (obj) => { synchronizer.Set(); });
                        synchronizer.WaitOne();
                        pHierarchy.AddITIC(iTask.Result, cTask.Result, lTask.Result);
                    }
                }
            }

            pHierarchy.SortLookups();
        }
        public void LoadITICs_Test()
        {
            ITICHierarchy hierarchy = new ITICHierarchy();

            using (DataTransactionBase dt = new OracleDataTransaction(Configuration.ITICConnectionString))
            {
                ITICGateway gateway = new ITICGateway(dt.Transaction);
                gateway.Load(hierarchy);
            }

            Assert.IsNotNull(hierarchy);
            Assert.IsNotNull(hierarchy.Codes);
            Assert.IsTrue(hierarchy.Codes.Count > 0);
            Debug.WriteLine("ITIC:{0}", hierarchy.Codes.Count);
            Assert.IsNotNull(hierarchy.Infrastructures);
            Assert.IsTrue(hierarchy.Infrastructures.Count > 0);
            Debug.WriteLine("Infrastructures:{0}", hierarchy.Infrastructures.Count);
            Assert.IsNotNull(hierarchy.Capabilities);
            Assert.IsTrue(hierarchy.Capabilities.Count > 0);
            Debug.WriteLine("Capabilities:{0}", hierarchy.Capabilities.Count);
            Assert.IsNotNull(hierarchy.LogicalSystemGroups);
            Assert.IsTrue(hierarchy.LogicalSystemGroups.Count > 0);
            Debug.WriteLine("LogicalSystemGroups:{0}", hierarchy.LogicalSystemGroups.Count);

            Assert.AreEqual(hierarchy.Infrastructures.Count, hierarchy.Infrastructures.Count((item) => item.IsLoaded));
            Assert.AreEqual(hierarchy.Capabilities.Count, hierarchy.Capabilities.Count((item) => item.IsLoaded));
            Assert.AreEqual(hierarchy.LogicalSystemGroups.Count, hierarchy.LogicalSystemGroups.Count((item) => item.IsLoaded));
        }
Example #3
0
 protected void Page_Init(object sender, EventArgs e)
 {
     using (EventWaitHandle synchronizer = new AutoResetEvent(false))
     {
         try
         {
             _ITICHierarchy = new ITICHierarchy();
             using (DataTransactionBase dt = new OracleDataTransaction(Configuration.ITICConnectionString))
             {
                 ITICGateway gateway = new ITICGateway(dt.Transaction);
                 gateway.Load(_ITICHierarchy);
             }
         }
         catch (Exception ex)
         {
             _exception = ex;
         }
     }
 }
Example #4
0
 protected void Page_Init(object sender, EventArgs e)
 {
     using (EventWaitHandle synchronizer = new AutoResetEvent(false))
     {
         Task t1 = Task.Factory.StartNew(
             () =>
         {
             try
             {
                 _ITICHierarchy = new ITICHierarchy();
                 using (DataTransactionBase dt = new OracleDataTransaction(Configuration.ITICConnectionString))
                 {
                     ITICGateway gateway = new ITICGateway(dt.Transaction);
                     gateway.Load(_ITICHierarchy);
                 }
             }
             catch (Exception ex)
             {
                 _exception = ex;
             }
         });
         Task t2 = Task.Factory.StartNew(
             () =>
         {
             try
             {
                 _platformStackHierarchy = new PlatformStackHierarchy();
                 using (DataTransactionBase dt = new OracleDataTransaction(Configuration.StacksConnectionString))
                 {
                     StackGatewayBase gateway = new PlatformStackGateway(dt.Transaction);
                     gateway.Load(_platformStackHierarchy);
                 }
             }
             catch (Exception ex)
             {
                 _exception = ex;
             }
         });
         Task.Factory.ContinueWhenAll(new Task[] { t1, t2 }, (ts) => { synchronizer.Set(); });
         synchronizer.WaitOne();
     }
 }
Example #5
0
 public HierarchyParallelContext(IDataReader pReader, ITICHierarchy pHierarchy)
 {
     this.Reader    = pReader;
     this.Hierarchy = pHierarchy;
 }
        public void LoadITICsAndPlatformStacks_Test()
        {
            ITICHierarchy          ITICHierarchy  = new ITICHierarchy();
            PlatformStackHierarchy stackHierarchy = new PlatformStackHierarchy();

            using (EventWaitHandle synchronizer = new AutoResetEvent(false))
            {
                Task t1 = Task.Factory.StartNew(
                    (obj) =>
                {
                    ITICHierarchy h = obj as ITICHierarchy;
                    if (h == null)
                    {
                        return;
                    }

                    using (DataTransactionBase dt = new OracleDataTransaction(Configuration.ITICConnectionString))
                    {
                        ITICGateway gateway = new ITICGateway(dt.Transaction);
                        gateway.Load(h);
                    }
                }, ITICHierarchy);

                Task t2 = Task.Factory.StartNew(
                    (obj) =>
                {
                    PlatformStackHierarchy h = obj as PlatformStackHierarchy;
                    if (h == null)
                    {
                        return;
                    }

                    using (DataTransactionBase dt = new OracleDataTransaction(Configuration.StacksConnectionString))
                    {
                        StackGatewayBase gateway = new PlatformStackGateway(dt.Transaction);
                        gateway.Load(h);
                    }
                }, stackHierarchy);

                Task.Factory.ContinueWhenAll(new Task[] { t1, t2 }, (ts) => { synchronizer.Set(); });
                synchronizer.WaitOne();
            }

            Assert.IsNotNull(ITICHierarchy);
            Assert.IsNotNull(ITICHierarchy.Codes);
            Assert.IsTrue(ITICHierarchy.Codes.Count > 0);
            Assert.IsNotNull(ITICHierarchy.Infrastructures);
            Assert.IsTrue(ITICHierarchy.Infrastructures.Count > 0);
            Assert.IsNotNull(ITICHierarchy.Capabilities);
            Assert.IsTrue(ITICHierarchy.Capabilities.Count > 0);
            Assert.IsNotNull(ITICHierarchy.LogicalSystemGroups);
            Assert.IsTrue(ITICHierarchy.LogicalSystemGroups.Count > 0);

            Assert.IsNotNull(stackHierarchy);
            Assert.IsNotNull(stackHierarchy.Stacks);
            Assert.IsTrue(stackHierarchy.Stacks.Count > 0);
            Assert.IsNotNull(stackHierarchy.MajorFilters);
            Assert.IsTrue(stackHierarchy.MajorFilters.Count > 0);
            Assert.IsNotNull(stackHierarchy.MinorFilters);
            Assert.IsTrue(stackHierarchy.MinorFilters.Count > 0);
            Assert.IsNotNull(stackHierarchy.ArchitectureFilters);
            Assert.IsTrue(stackHierarchy.ArchitectureFilters.Count > 0);
            Assert.IsNotNull(stackHierarchy.BuildFilters);
            Assert.IsTrue(stackHierarchy.BuildFilters.Count > 0);
            Assert.IsNotNull(stackHierarchy.StackLookups);
            Assert.IsTrue(stackHierarchy.StackLookups.Count > 0);
        }