internal void AddPrimitiveProject(PrimitiveProject primitiveProject, SolutionFolder solutionFolder = null) { var otherProject = PrimitiveProjects.FirstOrDefault(x => x.ProjectId.Equals(primitiveProject.ProjectId)); ControlFlow.Assert(otherProject == null, $"Cannot add '{primitiveProject.Name}' because its id '{primitiveProject.ProjectId}' is already taken by '{otherProject?.Name}'."); PrimitiveProjects.Add(primitiveProject); PrimitiveProjectParents.Add(primitiveProject, solutionFolder); }
internal SolutionFolder GetSolutionFolder(PrimitiveProject primitiveProject) { return(PrimitiveProjectParents.TryGetValue(primitiveProject, out var parent) ? parent : null); }
public void RemoveProject(Project project) { PrimitiveProjects.Remove(project); PrimitiveProjectParents.Remove(project); }
internal IReadOnlyCollection <PrimitiveProject> GetNestedPrimitiveProjects(SolutionFolder solutionFolder) { return(PrimitiveProjectParents.Where(x => x.Value == solutionFolder).Select(x => x.Key).ToList()); }