Пример #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);
        }
Пример #2
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);
                    }
                }
            }
        }