Exemple #1
0
        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;
        }
Exemple #2
0
        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);
            }
        }