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
        }