public NamingStyleOptionPageViewModel(NamingStylePreferences info)
        {
            var viewModels = new List <NamingRuleViewModel>();

            foreach (var namingRule in info.NamingRules)
            {
                var viewModel = new NamingRuleViewModel()
                {
                    NamingStyles            = new ObservableCollection <MutableNamingStyle>(info.NamingStyles.Select(n => new MutableNamingStyle(n))),
                    Specifications          = new ObservableCollection <SymbolSpecification>(info.SymbolSpecifications),
                    NotificationPreferences = new List <NotificationOptionViewModel>(_notifications)
                };

                viewModel.SelectedSpecification          = viewModel.Specifications.Single(s => s.ID == namingRule.SymbolSpecificationID);
                viewModel.SelectedStyle                  = viewModel.NamingStyles.Single(s => s.ID == namingRule.NamingStyleID);
                viewModel.SelectedNotificationPreference = viewModel.NotificationPreferences.Single(n => n.Notification.Value == namingRule.EnforcementLevel);

                viewModels.Add(viewModel);
            }

            CodeStyleItems = new ObservableCollection <NamingRuleViewModel>(viewModels);
            Specifications = new ObservableCollection <SymbolSpecification>(info.SymbolSpecifications);
            NamingStyles   = new ObservableCollection <MutableNamingStyle>(info.NamingStyles.Select(n => new MutableNamingStyle(n)));

            SetMoveArrowStatuses();
        }
        public NamingStyleOptionPageViewModel(SerializableNamingStylePreferencesInfo info)
        {
            var viewModels = new List<NamingRuleViewModel>();
            foreach (var namingRule in info.NamingRules)
            {
                var viewModel = new NamingRuleViewModel();

                viewModel.NamingStyles = new ObservableCollection<NamingStyle>(info.NamingStyles);
                viewModel.Specifications = new ObservableCollection<SymbolSpecification>(info.SymbolSpecifications);
                viewModel.NotificationPreferences = new List<EnforcementLevel>(_notifications);

                viewModel.SelectedSpecification = viewModel.Specifications.Single(s => s.ID == namingRule.SymbolSpecificationID);
                viewModel.SelectedStyle= viewModel.NamingStyles.Single(s => s.ID == namingRule.NamingStyleID);
                viewModel.SelectedNotificationPreference = viewModel.NotificationPreferences.Single(n => n.Name == new EnforcementLevel(namingRule.EnforcementLevel).Name);
                
                viewModels.Add(viewModel);
            }

            CodeStyleItems = new ObservableCollection<NamingRuleViewModel>(viewModels);
            Specifications = new ObservableCollection<SymbolSpecification>(info.SymbolSpecifications);
            NamingStyles = new ObservableCollection<NamingStyle>(info.NamingStyles);

            SetMoveArrowStatuses();
        }
 internal void RemoveItem(NamingRuleViewModel namingRuleViewModel)
 {
     CodeStyleItems.Remove(namingRuleViewModel);
     SetMoveArrowStatuses();
 }
 internal void AddItem(NamingRuleViewModel namingRuleViewModel)
 {
     CodeStyleItems.Add(namingRuleViewModel);
     SetMoveArrowStatuses();
 }
 internal void RemoveItem(NamingRuleViewModel namingRuleViewModel)
 {
     CodeStyleItems.Remove(namingRuleViewModel);
     SetMoveArrowStatuses();
 }
 internal void AddItem(NamingRuleViewModel namingRuleViewModel)
 {
     CodeStyleItems.Add(namingRuleViewModel);
     SetMoveArrowStatuses();
 }