internal void RemoveReference(bool automaticReference) { if (automaticReference) { References--; } _framework.RemoveRefrence(); //If is not enabled (last reference was removed) then remove settings block from the collection if (!IsChecked) { _profilingTypesSettings.Remove(_profilingType.Definition.Uid); } //Look through profiling types and enable dependencies of current profiling type IEnumerable <DependencyDefinition> dependencies = _profilingType.Definition.Dependencies; foreach (ProfilingTypeViewModel profilingTypeViewModel in _profilingTypes) { //profilingTypeViewModel is current profiling type - do nothing if (profilingTypeViewModel == this) { continue; } ProfilingTypeViewModel viewModel = profilingTypeViewModel; //If profilingTypeViewModel is dependency for current profiling type? //If yes - disable it if (dependencies.Any(x => viewModel.ProfilingType.Definition.Uid == x.Uid)) { viewModel.RemoveReference(true); } } }
public FrameworkViewModel(IFramework framework, List <ProfilingTypeViewModel> profilingTypes, ConfigurationSettings configurationSettings) { _references = 0; _framework = framework; _frameworksSettings = configurationSettings.FrameworksSettings; _profilingTypes = new List <ProfilingTypeViewModel>(); foreach (IProfilingType profilingType in _framework.ProfilingTypes) { ProfilingTypeViewModel viewModel = new ProfilingTypeViewModel(profilingType, this, profilingTypes, configurationSettings.ProfilingTypesSettings); profilingTypes.Add(viewModel); _profilingTypes.Add(viewModel); } }
internal void AddReference(bool automaticReference) { if (automaticReference) { References++; } _framework.AddReference(); //If settings collection doesn't contain setings block then add it if (!_profilingTypesSettings.Contains(_profilingType.Definition.Uid)) { if (_profilingTypeSettings == null) { _profilingTypeSettings = _profilingTypesSettings.GetOrCreate(_profilingType.Definition.Uid); _profilingTypeSettings.FrameworkUid = _profilingType.Definition.FrameworkUid; } else { _profilingTypesSettings.Add(_profilingTypeSettings); } } //Look through profiling types and enable dependencies of current profiling type IEnumerable <DependencyDefinition> dependencies = _profilingType.Definition.Dependencies; foreach (ProfilingTypeViewModel profilingTypeViewModel in _profilingTypes) { //profilingTypeViewModel is current profiling type - do nothing if (profilingTypeViewModel == this) { continue; } ProfilingTypeViewModel viewModel = profilingTypeViewModel; //If profilingTypeViewModel is dependency for current profiling type? //If yes - enable it if (dependencies.Any(x => viewModel.ProfilingType.Definition.Uid == x.Uid)) { viewModel.AddReference(true); } } }