public ClassifiedPackages Execute(string packagesFolderPath)
{
if (!this.packageProvider.IsPackageSource(packagesFolderPath))
throw new ArgumentOutOfRangeException(
"packagesFolderPath",
"The path does not point to a Package Source");
List<Package> allPackages =
packageProvider.GetAll(packagesFolderPath);
var groups = allPackages.GroupBy(p => IsEditor(p));
var editorGroup = groups.FirstOrDefault(g => g.Key == true);
var runtimeGroup = groups.FirstOrDefault(g => g.Key == false);
return new ClassifiedPackages()
{
Editor = editorGroup != null ?
editorGroup.ToList() :
new List<Package>(),
Runtime = runtimeGroup != null ?
runtimeGroup.ToList() :
new List<Package>()
};
}