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); }
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); } } } }