Esempio n. 1
0
        private List <VmIndustrialClassJsonItem> FillChildren(List <VmIndustrialClassJsonItem> list)
        {
            //            Dictionary<string, VmFintoJsonItem> all = list.Select(x => new VmFintoJsonItem { Id = x.Code, Label = x.Name, Finnish = x.Name /* OntologyType = x.Level*/}).ToDictionary(x => x.Id);
            Dictionary <int, VmIndustrialClassJsonItem> parents = new Dictionary <int, VmIndustrialClassJsonItem>
            {
                { 1, null },
                { 2, null },
                { 3, null },
                { 4, null },
                { 5, null },
            };

            foreach (var item in list)
            {
                VmIndustrialClassJsonItem root = null;
                int parentLevel = item.Level - 1;
                parents[item.Level] = item;
                if (parentLevel > 0 && parentLevel < 5)
                {
                    root = parents[parentLevel];
                }
                if (root != null)
                {
                    if (root.Children == null)
                    {
                        root.Children = new List <VmIndustrialClassJsonItem>();
                    }
                    root.Children.Add(item);
//                    parent.Parents.Count.Should()
//                        .BeLessThan(2, $"{x} not in {parent.Parents.FirstOrDefault()}. Parent {item.Id}");
                    item.Parent = root.Code;
                }
            }
            return(list.Where(x => string.IsNullOrEmpty(x.Parent)).ToList());
        }
Esempio n. 2
0
        public List <VmIndustrialClassJsonItem> BuildTree(List <VmIndustrialClassJsonItem> list)
        {
            Dictionary <int, VmIndustrialClassJsonItem> parents = new Dictionary <int, VmIndustrialClassJsonItem>
            {
                { 1, null },
                { 2, null },
                { 3, null },
                { 4, null },
                { 5, null },
            };

            foreach (var item in list)
            {
                VmIndustrialClassJsonItem root = null;
                int parentLevel = item.Level - 1;
                parents[item.Level] = item;
                if (parentLevel > 0 && parentLevel < 5)
                {
                    root = parents[parentLevel];
                }
                if (root != null)
                {
                    if (root.Children == null)
                    {
                        root.Children = new List <VmIndustrialClassJsonItem>();
                    }
                    root.Children.Add(item);
                    //                    parent.Parents.Count.Should()
                    //                        .BeLessThan(2, $"{x} not in {parent.Parents.FirstOrDefault()}. Parent {item.Id}");
                    item.Parent = root.Code;
                }
            }
            return(list.Where(x => string.IsNullOrEmpty(x.Parent)).ToList());
        }