internal void DeleteSymbolSpec(SymbolSpecificationViewModel a)
 {
     if (!SymbolSpecUsedInTree(a))
     {
         SymbolSpecificationList.Remove(a);
     }
 }
        public SerializableNamingStylePreferencesInfo GetInfo()
        {
            // TODO!
            var info = new SerializableNamingStylePreferencesInfo();

            info.SymbolSpecifications = SymbolSpecificationList.Select(s => s.GetSymbolSpecification()).ToList();
            info.NamingStyles         = NamingStyleList.Select(s => s.GetNamingStyle()).ToList();
            info.NamingRules          = CreateNamingRuleTree();
            return(info);
        }
        private void CreateRootHelper(NamingRuleTreeItemViewModel rule, List <SerializableNamingRule> children)
        {
            foreach (var child in children)
            {
                var newRule = new NamingRuleTreeItemViewModel(
                    child.Title,
                    SymbolSpecificationList.SingleOrDefault(s => s.ID == child.SymbolSpecificationID),
                    NamingStyleList.SingleOrDefault(s => s.ID == child.NamingStyleID),
                    new EnforcementLevel(child.EnforcementLevel),
                    this);

                CreateRootHelper(newRule, child.Children);
                rule.Children.Add(newRule);
            }
        }
 internal void AddSymbolSpecification(SymbolSpecificationViewModel viewModel)
 {
     SymbolSpecificationList.Add(viewModel);
 }