/// <summary> /// Load settings from server if project context has changed. This refreshes the user /// interface in case the tool window is open when connecting / disconnecting /// </summary> public void LoadSettings() { _settings = DependencyManagerSettings.Instance; // The load is triggered anyways but the load is registered to the same event and not // guaranteed to be executed before the ui refresh, so we load it manually before refreshing. LoadSettingsFailed = !_settings.Load(_teamFoundationServer.ActiveProjectContext.DomainUri) && IsConnected; FetchDependenciesOnLocalSolutionBuild = _settings.FetchDependenciesOnLocalSolutionBuild; FilenameExtension = string.Join(",", _settings.ValidDependencyDefinitionFileExtension); RelativeOutputPath = _settings.RelativeOutputPath; BinaryRepositoryTeamProject = _settings.BinaryRepositoryTeamProject; IsBinaryRepositoryComponentSettingsEnabled = _settings.IsBinaryRepositoryComponentSettingsEnabled; BinaryRepositoryFilterComponentList = _settings.BinaryRepositoryFilterComponentList; BinaryRepositoryTeamProjectCollectionUri = _settings.BinaryRepositoryTeamProjectCollectionUrl; IsZippedDependencyAllowed = _settings.IsZippedDependencyAllowed; IsMultiSiteAllowed = _settings.IsMultiSiteAllowed; Sites = string.Join(";", _settings.MultiSiteList); // check or uncheck resolver depending on whether their internal name is in the list of disabled resolvers foreach (var resolverTypeViewModel in ResolverTypes) { resolverTypeViewModel.IsEnabled = _settings.DisabledResolvers.Contains(resolverTypeViewModel.ReferenceName) == false; } RaiseNotifyPropertyChanged(() => IsConnected); RaiseNotifyPropertyChanged(() => IsZippedDependencyAllowedAndConnected); RaiseNotifyPropertyChanged(() => IsMultiSiteAllowed); RaiseNotifyPropertyChanged(() => ProjectContext); RaiseNotifyPropertyChanged(() => LoadSettingsFailed); }
/// <summary> /// Creates settings to use for dependency service /// </summary> /// <param name="settings">Instance to default configuration settings</param> /// <param name="componentTargetsFileName"> Name of the component.targets file</param> /// <returns></returns> private ISettings <ServiceValidSettings> CreateSettingsToUse(DependencyManagerSettings settings, string componentTargetsFileName) { var workstation = Workstation.Current; var info = workstation.GetLocalWorkspaceInfo(componentTargetsFileName); var collection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(info.ServerUri, new UICredentialsProvider()); if (!collection.HasAuthenticated) { collection.Authenticate(); } var workspace = info.GetWorkspace(collection); //var serverItemForLocalItem = workspace.GetServerItemForLocalItem(componentTargetsFileName); //var vcs = collection.GetService<VersionControlServer>(); var outputFolder = GetOutputFolder(workspace, componentTargetsFileName); // create settings ISettings <ServiceValidSettings> settingsToUse = new Settings <ServiceValidSettings>(); // Default TFS settings settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.DefaultTeamProjectCollection, collection.Uri.ToString())); settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.DefaultWorkspaceName, workspace.Name)); settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.DefaultWorkspaceOwner, workspace.OwnerName)); // Output configuration settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.DefaultOutputBaseFolder, outputFolder)); settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.DefaultRelativeOutputPath, settings.RelativeOutputPath)); // BinaryRepository settings settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.BinaryTeamProjectCollectionUrl, collection.Uri.ToString())); settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.BinaryRepositoryTeamProject, settings.BinaryRepositoryTeamProject)); // Visual Editor var dependencyDefinitionFileNameList = string.Join(";", settings.ValidDependencyDefinitionFileExtension.Select(x => string.Concat("component", x))); if (!dependencyDefinitionFileNameList.Contains(Path.GetFileName(componentTargetsFileName))) { dependencyDefinitionFileNameList = string.Concat( Path.GetFileName(componentTargetsFileName), ";", dependencyDefinitionFileNameList); } settingsToUse.AddSetting(new KeyValuePair <ServiceValidSettings, string>(ServiceValidSettings.DefaultDependencyDefinitionFilename, dependencyDefinitionFileNameList)); return(settingsToUse); }
/// <summary> /// Load settings from server if project context has changed. This refreshes the user /// interface in case the tool window is open when connecting / disconnecting /// </summary> public void LoadSettings() { _settings = DependencyManagerSettings.Instance; // The load is triggered anyways but the load is registered to the same event and not // guaranteed to be executed before the ui refresh, so we load it manually before refreshing. LoadSettingsFailed = !_settings.Load(_teamFoundationServer.ActiveProjectContext.DomainUri) && IsConnected; BinaryRepositoryTeamProject = _settings.BinaryRepositoryTeamProject; BinaryRepositoryTeamProjectCollectionUri = _settings.BinaryRepositoryTeamProjectCollectionUrl; Sites = string.Join(";", _settings.MultiSiteList); LoadMultiSiteComboBox(); //Load the settings from the local registry PathToSevenZipExe = ApplicationSettings.Instance.InstallPathForSevenZip; RaiseNotifyPropertyChanged(() => IsConnected); RaiseNotifyPropertyChanged(() => ProjectContext); RaiseNotifyPropertyChanged(() => LoadSettingsFailed); }