Umbraco.UmbracoStudio.VisualStudio.ProjectCache.TryGetProjectNameByShortName C# (CSharp) Method

TryGetProjectNameByShortName() public method

Tries to find a project by short name. Returns the project name if and only if it is non-ambiguous.
public TryGetProjectNameByShortName ( string name, ProjectName &projectName ) : bool
name string
projectName ProjectName
return bool
        public bool TryGetProjectNameByShortName(string name, out ProjectName projectName)
        {
            projectName = null;

            HashSet<ProjectName> projectNames;
            if (_shortNameCache.TryGetValue(name, out projectNames))
            {
                // Get the item at the front of the queue
                projectName = projectNames.Count == 1 ? projectNames.Single() : null;

                // Only return true if the short name is unambiguous
                return projectName != null;
            }

            return false;
        }

Usage Example

        private void AddProjectToCache(Project project)
        {
            if (!project.IsSupported())
            {
                return;
            }
            ProjectName oldProjectName;

            _projectCache.TryGetProjectNameByShortName(project.Name, out oldProjectName);

            ProjectName newProjectName = _projectCache.AddProject(project);

            if (String.IsNullOrEmpty(DefaultProjectName) ||
                newProjectName.ShortName.Equals(DefaultProjectName, StringComparison.OrdinalIgnoreCase))
            {
                DefaultProjectName = oldProjectName != null ?
                                     oldProjectName.CustomUniqueName :
                                     newProjectName.ShortName;
            }
        }