Esempio n. 1
0
        public int GetHeight(int id)
        {
            var container = new WindsorContainer();

            container.Register(Component.For <ICompanyHierarchy>().ImplementedBy <CompanyHierarchy>().LifestyleSingleton());

            // Resolve an object of type ICompanyHierarchy (ask the container for an instance)
            // This is analagous to calling new() in a non-IoC application.
            _CompanyHierarchy = container.Resolve <ICompanyHierarchy>();
            Common.Models.Node n = _CompanyHierarchy.Getnode(id);
            return(_CompanyHierarchy.GetHeight(n));
        }
        public HttpResponseMessage Get_all_children(int id)
        {
            var container = new WindsorContainer();

            container.Register(Component.For <ICompanyHierarchy>().ImplementedBy <CompanyHierarchy>().LifestyleSingleton());

            // Resolve an object of type ICompanyHierarchy (ask the container for an instance)
            // This is analagous to calling new() in a non-IoC application.
            _CompanyHierarchy = container.Resolve <ICompanyHierarchy>();

            Common.Models.Node node = _CompanyHierarchy.Getnode(id);

            IEnumerable <Common.Models.Node> resultsnodes = _CompanyHierarchy.Get_all_children(node);


            return(Share.Json <Common.Models.Node>(resultsnodes));
        }
        public IEnumerable <CompanyStructured.Common.Models.Node> Get_all_children(CompanyStructured.Common.Models.Node n)
        {
            List <CompanyStructured.Common.Models.Node> nodes = new List <CompanyStructured.Common.Models.Node>();


            IEnumerable <GetDescendantsByParentId_Result> results = ctx.GetDescendantsByParentId(n.Id);

            foreach (GetDescendantsByParentId_Result node in results)
            {
                CompanyStructured.Common.Models.Node nodmodel = new Common.Models.Node
                {
                    Id       = (int)node.Id,
                    name     = node.Name,
                    parentId = node.ParentId
                };
                nodes.Add(nodmodel);
            }
            ;



            //  Parallel.ForEach(ns, node =>
            //{
            //    CompanyStructured.Common.Models.Node nodmodel = new Common.Models.Node
            //    {
            //        Id = node.Id,
            //        name = node.Name,
            //        parentId = node.ParentId
            //    };
            //    nodes.Add(nodmodel);
            //    Thread t = new Thread(() => Get_all_children(nodmodel));
            //    lt.Add(t);
            //});
            //  Parallel.ForEach(lt, tr =>
            //{
            //    tr.Start();
            //});

            return(nodes);
        }