private void getConceptTemplates(ConceptTemplate conceptTemplate)
 {
     ChosenEntities.Add(conceptTemplate.applicableEntity);
     foreach (ConceptTemplate ct in conceptTemplate.getConceptTemplateses().Values)
     {
         getConceptTemplates(ct);
     }
 }
        /// <summary>
        /// Print the concept template
        ///
        /// </summary>
        /// <param name="conceptTemplate"></param>
        /// <returns></returns>
        private TreeViewItem PrintConceptTemplate(ConceptTemplate conceptTemplate)
        {
            TreeViewItem treeViewItem = new TreeViewItem();

            treeViewItem.Header = "ConceptTemplate - " + conceptTemplate.name;
            if (conceptTemplate.applicableEntity != "")
            {
                treeViewItem.Items.Add("applicableEntity: " + conceptTemplate.applicableEntity);
            }
            if (conceptTemplate.applicableSchema != "")
            {
                treeViewItem.Items.Add("applicableSchema: " + conceptTemplate.applicableSchema);
            }
            if (conceptTemplate.code != "")
            {
                treeViewItem.Items.Add("code: " + conceptTemplate.code);
            }


            Dictionary <string, ConceptTemplate> allConceptTemplates = conceptTemplate.getConceptTemplateses();

            if (allConceptTemplates.Count > 0)
            {
                TreeViewItem subConceptItems = new TreeViewItem();
                subConceptItems.Header = "SubConceptTemplates";

                foreach (var item in allConceptTemplates)
                {
                    TreeViewItem treeViewItem1 = new TreeViewItem();
                    treeViewItem1 = PrintConceptTemplate(item.Value);
                    subConceptItems.Items.Add(treeViewItem1);
                }
                treeViewItem.Items.Add(subConceptItems);
            }


            List <Templates> allSubTemplates = conceptTemplate.getAllSubTemplates();

            if (allSubTemplates.Any())
            {
                TreeViewItem subTemplatesItems = new TreeViewItem();
                subTemplatesItems.Header = "SubTemplates";

                foreach (var item in allSubTemplates)
                {
                    TreeViewItem treeViewItem1 = new TreeViewItem();
                    treeViewItem1 = PrintTemplate(item);
                    subTemplatesItems.Items.Add(treeViewItem1);
                }
                treeViewItem.Items.Add(subTemplatesItems);
            }

            List <AttributeRule> allAttributeRules = conceptTemplate.getAttributeRules();

            if (allAttributeRules.Any())
            {
                TreeViewItem attributeRulesItems = new TreeViewItem();
                attributeRulesItems.Header = "AttributeRules";


                foreach (var item in allAttributeRules)
                {
                    TreeViewItem treeViewItem1 = new TreeViewItem();
                    treeViewItem1 = PrintAttribute(item);
                    attributeRulesItems.Items.Add(treeViewItem1);
                }
                treeViewItem.Items.Add(attributeRulesItems);
            }

            return(treeViewItem);
        }