/// <summary> /// Initializes a new instance of the <see cref="AddRuleViewModel" /> class. /// </summary> /// <param name="configuration">The configuration.</param> /// <param name="visualStudioService">The visual studio service.</param> /// <exception cref="ArgumentNullException">The <paramref name="configuration" /> is <c>null</c>.</exception> /// <exception cref="ArgumentNullException">The <paramref name="visualStudioService" /> is <c>null</c>.</exception> public AddRuleViewModel(IConfiguration configuration, IVisualStudioService visualStudioService) { Argument.IsNotNull(() => configuration); Argument.IsNotNull(() => visualStudioService); _configuration = configuration; AvailableProjects = new List<string>(); AvailableProjects.AddRange(from project in visualStudioService.GetAllProjects() select project.Name); RootProject = visualStudioService.GetCurrentProject().Name; ItemsToAdd = new List<string>(visualStudioService.GetSelectedItems()); RuleTypes = Enum<RuleType>.ToList(); ProjectTypes = new ObservableCollection<SelectableProjectType>(); foreach (var projectType in ProjectTypeHelper.GetAvailableProjectTypes()) { var selectableProjectType = new SelectableProjectType(projectType); this.SubscribeToWeakPropertyChangedEvent(selectableProjectType, OnSelectableProjectTypePropertyChanged); ProjectTypes.Add(selectableProjectType); } }
/// <summary> /// Initializes a new instance of the <see cref="RuleViewModel" /> class. /// </summary> /// <param name="rootProject">The root project this rule belongs to.</param> /// <param name="rule">The rule.</param> /// <param name="visualStudioService">The visual studio service.</param> /// <param name="uiVisualizerService">The UI visualizer service.</param> /// <exception cref="ArgumentNullException">The <paramref name="rootProject" /> is <c>null</c>.</exception> /// <exception cref="ArgumentNullException">The <paramref name="rootProject" /> is <c>null</c>.</exception> public RuleViewModel(RootProject rootProject, Rule rule, IVisualStudioService visualStudioService, IUIVisualizerService uiVisualizerService) { Argument.IsNotNull(() => rootProject); Argument.IsNotNull(() => rule); Argument.IsNotNull(() => visualStudioService); Argument.IsNotNull(() => uiVisualizerService); _uiVisualizerService = uiVisualizerService; var project = visualStudioService.GetProjectByName(rootProject.Name); if (project != null) { _rootProjectItem = new ProjectItem(project); } Rule = rule; RuleTypes = Enum<RuleType>.ToList(); ProjectTypes = new ObservableCollection<SelectableProjectType>(); foreach (var projectType in ProjectTypeHelper.GetAvailableProjectTypes()) { bool isSelected = rule.ProjectTypes.Contains(projectType); var selectableProjectType = new SelectableProjectType(projectType, isSelected); this.SubscribeToWeakPropertyChangedEvent(selectableProjectType, OnSelectableProjectTypePropertyChanged); ProjectTypes.Add(selectableProjectType); } SelectProjectItem = new Command(OnSelectProjectItemExecute, OnSelectProjectItemCanExecute); }