summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.BuildTasks/FilterItems.cs
blob: 97631c67b65cece3da8256c6a23b69f0a78a2ab4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace DotNetOpenAuth.BuildTasks {
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;
	using Microsoft.Build.Utilities;
	using Microsoft.Build.Framework;

	public class FilterItems : Task {
		[Required]
		public ITaskItem[] InputItems { get; set; }

		[Required]
		public ITaskItem[] StartsWithAny { get; set; }

		[Output]
		public ITaskItem[] FilteredItems { get; set; }

		public override bool Execute() {
			FilteredItems = InputItems.Where(item => StartsWithAny.Any(filter => item.ItemSpec.StartsWith(filter.ItemSpec, StringComparison.OrdinalIgnoreCase))).ToArray();
			return true;
		}
	}
}