public void Add(Project project, BuildEnvironment environment) { if (project == null) { throw new ArgumentNullException("project"); } if (project.Filename == null) { throw new ArgumentNullException("project.Filename"); } if (!Path.IsPathRooted(project.Filename)) { throw new ArgumentException("project"); } if (environment == null) { throw new ArgumentNullException("environment"); } var env = new ProjectAndEnvironment { Project = project, Environment = environment }; _all.Add(project.Filename, env); _todo.Add(project.Filename, env); var dependencies = new HashSet <Project>(); _dependencies.Add(project, dependencies); ++_projectCount; }
public ProjectAndEnvironment[] TryGetAll(string[] fileNames) { if (fileNames == null) { throw new ArgumentNullException("fileNames"); } lock (_syncRoot) { var ret = new ProjectAndEnvironment[fileNames.Length]; for (int i = 0; i < fileNames.Length; ++i) { ProjectAndEnvironment tmp; if (_all.TryGetValue(fileNames[i], out tmp)) { ret[i] = tmp; } } return(ret); } }