private void CollectionViewSource_Filter(object sender, FilterEventArgs e)
        {
            BuildDefinitionInfo buildDefinitionInfo = e.Item as BuildDefinitionInfo;

            if (buildDefinitionInfo == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(_filterText))
            {
                e.Accepted = true;
            }
            else if (Regex.IsMatch(buildDefinitionInfo.Name, _filterText, RegexOptions.IgnoreCase))
            {
                e.Accepted = true;
            }
            else
            {
                e.Accepted = false;
            }
        }
        private static void DeleteBuildsForDefinition(ApplicationTask task, IBuildServer buildServer, int step, BuildDefinitionInfo buildDefinition)
        {
            var buildDetailSpec = buildServer.CreateBuildDetailSpec(new[] { buildDefinition.Uri, });
            var buildsToDelete  = buildServer.QueryBuilds(buildDetailSpec).Builds;

            if (buildsToDelete.Any())
            {
                task.SetProgress(step, string.Format(CultureInfo.CurrentCulture, "Deleting {0} builds for definition \"{1}\" in Team Project \"{2}\"", buildsToDelete.Count(), buildDefinition.Name, buildDefinition.TeamProject));
                foreach (var buildToDelete in buildsToDelete)
                {
                    try
                    {
                        buildToDelete.Delete(DeleteOptions.All);
                    }
                    catch (Exception exc)
                    {
                        task.SetWarning(string.Format(CultureInfo.CurrentCulture, "An error occurred while deleting build number \"{0}\" for definition \"{1}\" in Team Project \"{2}\"", buildToDelete.BuildNumber, buildDefinition.Name, buildDefinition.TeamProject), exc);
                    }
                }
            }
        }