Exemplo n.º 1
0
        private UDSTreeViewDto AddChildrenNode(UDSTreeViewDto parentDto, int parentid, UDSTreeViewDto newDtos)
        {
            UDSTreeViewDto parent = GetParentNode(new List <UDSTreeViewDto>()
            {
                parentDto
            }, parentid);

            if (parent == null)
            {
                return(null);
            }

            if (!parent.HasChildren())
            {
                parent.Children = new List <UDSTreeViewDto>();
            }

            //Verifico se l'elemento è già presente come child
            ICollection <UDSTreeViewDto> childrenDtos = (ICollection <UDSTreeViewDto>)parent.Children;

            if (!childrenDtos.Any(x => x.Id.Equals(newDtos.Id)))
            {
                childrenDtos.Add(newDtos);
            }

            return(parentDto);
        }
Exemplo n.º 2
0
        public ICollection <UDSTreeViewDto> GetCategoryTreeView(ICollection <Category> categories, UDSTreeViewState state, bool setChildren)
        {
            foreach (Category category in categories)
            {
                UDSTreeViewDto result = AddCategoryNode(category, state, setChildren);
                UpdateSource(this._dtosInserted, result);
            }

            return(this._dtosInserted);
        }
Exemplo n.º 3
0
        private void UpdateSource(ICollection <UDSTreeViewDto> dtos, UDSTreeViewDto dtoToUpdate)
        {
            UDSTreeViewDto element = GetParentNode(dtos, dtoToUpdate.Id.Value);

            if (element == null)
            {
                dtos.Add(dtoToUpdate);
            }
            else
            {
                if (dtoToUpdate.HasChildren())
                {
                    foreach (UDSTreeViewDto child in (ICollection <UDSTreeViewDto>)dtoToUpdate.Children)
                    {
                        UpdateSource(dtos, child);
                    }
                }
            }
        }
Exemplo n.º 4
0
        private UDSTreeViewDto AddCategoryNode(Category category, UDSTreeViewState state, bool setChildren)
        {
            UDSTreeViewDto node = null;

            if (category.Parent != null)
            {
                node = GetParentNode(this._dtosInserted, category.Parent.Id);
                node = node ?? AddCategoryNode(category.Parent, state, setChildren);
            }

            UDSTreeViewDto newNode = new UDSTreeViewDto()
            {
                Id       = category.Id,
                Text     = category.GetFullName(),
                State    = state,
                Children = setChildren && category.HasChildren
            };

            return(node == null ? newNode : AddChildrenNode(node, category.Parent.Id, newNode));
        }
Exemplo n.º 5
0
        private UDSTreeViewDto GetParentNode(ICollection <UDSTreeViewDto> parentDtos, int idParent)
        {
            foreach (UDSTreeViewDto dto in parentDtos)
            {
                if (dto.Id.Equals(idParent))
                {
                    return(dto);
                }

                UDSTreeViewDto parent = null;
                if (dto.HasChildren())
                {
                    parent = GetParentNode((ICollection <UDSTreeViewDto>)dto.Children, idParent);
                }

                if (parent != null)
                {
                    return(parent);
                }
            }
            return(null);
        }