aspnetcore/build/tasks/OrderBy.cs

29 lines
715 B
C#

// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Linq;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
namespace RepoTasks
{
public class OrderBy : Task
{
[Required]
[Output]
public ITaskItem[] Items { get; set; }
public string Key { get; set; }
public override bool Execute()
{
var key = string.IsNullOrEmpty(Key)
? "Identity"
: Key;
Items = Items.OrderBy(k => k.GetMetadata(key)).ToArray();
return true;
}
}
}