public void RemoveBuildProcessTemplates(IEnumerable<string> templates, IEnumerable<string> teamProjects, EvaluateRemoveBuildProcessTemplate shouldRemove)
        {
            foreach (var teamProject in teamProjects)
            {
                foreach (var template in templates.ToList())
                {
                    if (this.buildServer.QueryBuildDefinitions(teamProject).Any(bd => bd.Process != null && bd.Process.ServerPath == template))
                    {
                        if (!shouldRemove())
                        {
                            return;
                        }
                    }

                    var t = this.buildServer.QueryProcessTemplates(teamProject).FirstOrDefault(pt => pt.ServerPath == template);
                    if (t != null)
                    {
                        if (t.TemplateType == ProcessTemplateType.Default)
                        {
                            t.TemplateType = ProcessTemplateType.Custom;
                            t.Save();
                        }

                        t.Delete();
                    }
                }
            }
        }
        public void RemoveBuildProcessTemplates(IEnumerable <string> templates, IEnumerable <string> teamProjects, EvaluateRemoveBuildProcessTemplate shouldRemove)
        {
            foreach (var teamProject in teamProjects)
            {
                foreach (var template in templates.ToList())
                {
                    if (this.buildServer.QueryBuildDefinitions(teamProject).Any(bd => bd.Process != null && bd.Process.ServerPath == template))
                    {
                        if (!shouldRemove())
                        {
                            return;
                        }
                    }

                    var t = this.buildServer.QueryProcessTemplates(teamProject).FirstOrDefault(pt => pt.ServerPath == template);
                    if (t != null)
                    {
                        if (t.TemplateType == ProcessTemplateType.Default)
                        {
                            t.TemplateType = ProcessTemplateType.Custom;
                            t.Save();
                        }

                        t.Delete();
                    }
                }
            }
        }