/// <summary> /// Add a project to the cache. /// </summary> /// <param name="project">project to add to the cache.</param> /// <returns>The project name of the added project.</returns> public EnvDTEProjectName AddProject(EnvDTEProject project, VSNuGetProjectFactory factory) { ThreadHelper.ThrowIfNotOnUIThread(); // Create the nuget project first, if this throws we bail out, and not change the cache var nuGetProject = factory.CreateNuGetProject(project); // First create a project name from the project var EnvDTEProjectName = new EnvDTEProjectName(project); // Do nothing if we already have an entry if (_envDTEProjectCache.ContainsKey(EnvDTEProjectName)) { return(EnvDTEProjectName); } AddShortName(EnvDTEProjectName); _projectNamesCache[EnvDTEProjectName.CustomUniqueName] = EnvDTEProjectName; _projectNamesCache[EnvDTEProjectName.UniqueName] = EnvDTEProjectName; _projectNamesCache[EnvDTEProjectName.FullName] = EnvDTEProjectName; // Add the entry mapping project name to the actual project _envDTEProjectCache[EnvDTEProjectName] = project; _nuGetProjectCache[EnvDTEProjectName] = nuGetProject; return(EnvDTEProjectName); }
/// <summary> /// Add a project to the cache. /// </summary> /// <param name="project">project to add to the cache.</param> /// <returns>The project name of the added project.</returns> public EnvDTEProjectName AddProject(EnvDTEProject project, VSNuGetProjectFactory factory) { // First create a project name from the project var EnvDTEProjectName = new EnvDTEProjectName(project); // Do nothing if we already have an entry if (_envDTEProjectCache.ContainsKey(EnvDTEProjectName)) { return(EnvDTEProjectName); } AddShortName(EnvDTEProjectName); _projectNamesCache[EnvDTEProjectName.CustomUniqueName] = EnvDTEProjectName; _projectNamesCache[EnvDTEProjectName.UniqueName] = EnvDTEProjectName; _projectNamesCache[EnvDTEProjectName.FullName] = EnvDTEProjectName; // Add the entry mapping project name to the actual project _envDTEProjectCache[EnvDTEProjectName] = project; _nuGetProjectCache[EnvDTEProjectName] = factory.CreateNuGetProject(project); return(EnvDTEProjectName); }