private ResourceHierarchyDTO CreateTypeHierarchyList(EntityTypeDto resourceTypeHierarchy, int level)
        {
            List <ResourceHierarchyDTO> hierarchyList = new List <ResourceHierarchyDTO>();


            if (!resourceTypeHierarchy.SubClasses.IsNullOrEmpty())
            {
                var parent = new ResourceHierarchyDTO()
                {
                    HasChild     = true,
                    Level        = level,
                    IsCategory   = false,
                    Instantiable = false,
                    Name         = resourceTypeHierarchy.Label
                };

                foreach (var res in resourceTypeHierarchy.SubClasses)
                {
                    var child = CreateTypeHierarchyList(res, level + 1);
                    child.HasParent  = true;
                    child.Id         = child.Name + "#" + parent.Name;
                    child.ParentName = parent.Name;
                    child.IsCategory = false;
                    hierarchyList.Add(child);
                }

                parent.Children = hierarchyList;
                return(parent);
            }
            else
            {
                return(new ResourceHierarchyDTO()
                {
                    Children = new List <ResourceHierarchyDTO>(),
                    HasChild = false,
                    Level = level,
                    IsCategory = false,
                    Instantiable = true,
                    Name = resourceTypeHierarchy.Label
                });
            }
        }
        public IList <ResourceHierarchyDTO> GetCategoryFilterDmp()
        {
            var categoryList = new List <ResourceHierarchyDTO>();
            var resourceList = GetCategoryFilter();

            resourceList.ToList().ForEach(x =>
            {
                var hierarchyObject = new ResourceHierarchyDTO()
                {
                    Level        = 0,
                    HasChild     = true,
                    HasParent    = false,
                    IsCategory   = true,
                    Description  = x.Description,
                    Instantiable = false,
                    Name         = x.Name,
                };

                x.ResourceTypes.ToList().ForEach(child =>
                {
                    hierarchyObject.addChild(new ResourceHierarchyDTO()
                    {
                        Level        = 1,
                        HasChild     = false,
                        HasParent    = true,
                        IsCategory   = true,
                        Id           = child + "#" + x.Name,
                        Instantiable = true,
                        Name         = child
                    });
                });

                categoryList.Add(hierarchyObject);
            });

            return(categoryList);
        }