private TreeItem GetTreeItem(Element element) { var treeItem = new TreeItem() { // Id = child.Id, Name = element.EnglishName, IsChoice = element.IsChoice, Order = element.Order, SubItems = new List<TreeItem>(), }; if (element.Children != null && element.Children.Count > 0) { foreach (var child in element.Children.OrderBy(x => x.Child.Order)) { treeItem.SubItems.Add(GetTreeItem(child.Child)); } } if (element.AttributeMetadatas != null && element.AttributeMetadatas.Count > 0) { foreach (var attr in element.AttributeMetadatas.OrderBy(x => x.Order)) { treeItem.SubItems.Add(new TreeItem { Name = attr.Name, Order = attr.Order, Placeholder = attr.Placeholder }); } } return treeItem; }
private Element Dive(TreeItem treeItem, Element parent, Guid versionId) { //Element root; Element element = new Element { Id = Guid.NewGuid(), EnglishName = treeItem.Name, RussianName = treeItem.Name, IsChoice = treeItem.IsChoice, SubserviceVersionId = versionId, Order = treeItem.Order }; if (parent != null) { parent.Children.Add(new TreeElement() { Id = Guid.NewGuid(), Child = element }); } if (treeItem.SubItems != null && treeItem.SubItems.Count != 0) { //блок foreach (var subItem in treeItem.SubItems.OrderBy(x => x.Order)) { if (!string.IsNullOrEmpty(subItem.Placeholder)) { element.AttributeMetadatas.Add(new AttributeMetadata() { Id = Guid.NewGuid(), Name = subItem.Name, Placeholder = subItem.Placeholder, Order = subItem.Order }); } else { Dive(subItem, element, versionId); } } } else { //атрибут if (!string.IsNullOrEmpty(treeItem.Placeholder)) { element.AttributeMetadatas.Add(new AttributeMetadata() { Id = Guid.NewGuid(), Name = treeItem.Name, Placeholder = treeItem.Placeholder, Order = treeItem.Order }); } } return element; //root }