private async Task AddVsProjectAdapterToCacheAsync(IVsProjectAdapter vsProjectAdapter) { if (!vsProjectAdapter.IsSupported) { return; } _projectSystemCache.TryGetProjectNameByShortName(vsProjectAdapter.ProjectName, out var oldProjectName); // Create the NuGet project first. If this throws we bail out and do not change the cache. var nuGetProject = await CreateNuGetProjectAsync(vsProjectAdapter); // Then create the project name from the project. var newProjectName = vsProjectAdapter.ProjectNames; // Finally, try to add the project to the cache. var added = _projectSystemCache.AddProject(newProjectName, vsProjectAdapter, nuGetProject); if (added && nuGetProject != null) { // Emit project specific telemetry as we are adding the project to the cache. // This ensures we do not emit the events over and over while the solution is // open. NuGetProjectTelemetryService.Instance.EmitNuGetProject(nuGetProject); } if (string.IsNullOrEmpty(DefaultNuGetProjectName) || newProjectName.ShortName.Equals(DefaultNuGetProjectName, StringComparison.OrdinalIgnoreCase)) { DefaultNuGetProjectName = oldProjectName != null ? oldProjectName.CustomUniqueName : newProjectName.ShortName; } }
private void AddEnvDTEProjectToCache(EnvDTE.Project envDTEProject) { ThreadHelper.ThrowIfNotOnUIThread(); if (!EnvDTEProjectUtility.IsSupported(envDTEProject)) { return; } ProjectNames oldEnvDTEProjectName; _projectSystemCache.TryGetProjectNameByShortName(EnvDTEProjectUtility.GetName(envDTEProject), out oldEnvDTEProjectName); // Create the NuGet project first. If this throws we bail out and do not change the cache. var nuGetProject = CreateNuGetProject(envDTEProject); // Then create the project name from the project. var newEnvDTEProjectName = ProjectNames.FromDTEProject(envDTEProject); // Finally, try to add the project to the cache. var added = _projectSystemCache.AddProject(newEnvDTEProjectName, envDTEProject, nuGetProject); if (added) { // Emit project specific telemetry as we are adding the project to the cache. // This ensures we do not emit the events over and over while the solution is // open. NuGetProjectTelemetryService.Instance.EmitNuGetProject(nuGetProject); } if (string.IsNullOrEmpty(DefaultNuGetProjectName) || newEnvDTEProjectName.ShortName.Equals(DefaultNuGetProjectName, StringComparison.OrdinalIgnoreCase)) { DefaultNuGetProjectName = oldEnvDTEProjectName != null ? oldEnvDTEProjectName.CustomUniqueName : newEnvDTEProjectName.ShortName; } }