0

我可以获得一张卡片的动作列表。但是,动作卡只有有限的信息,那么我如何才能获得动作的实际内容呢?

var actionList = trello.Actions.ForCard(card);
foreach (TrelloNet.Action action in actionList)

当我浏览列表中的每个操作时,我只能看到发起操作的成员、日期、成员和操作类型(例如 TrelloNet.UpdateCardAction)。我如何才能了解操作的实际上下文,例如已将这张卡转移到董事会?

如果这不是获取实际操作信息的正确方法,请指出正确的逻辑路径。

谢谢,

4

1 回答 1

1

每种类型的动作都是该类的子Action类。子类有一个名为的属性Data,其中包含该类型操作的特定信息。

举个例子,如果你想为一个板打印所有创建卡片的动作,你可以这样做:

var board = trello.Boards.WithId("a board id");
foreach (var action in trello.Actions.ForBoard(board).OfType<CreateCardAction>())
{
    Console.WriteLine(action.Date + " " + action.Data.Card.Name);
}

这将从 trello 获取所有板操作,然后在内存中过滤。出于性能原因,您可以告诉 Trello.NET 仅通过传递如下附加参数来请求特定的操作类型:

foreach (var action in trello.Actions.ForBoard(board, 
    new[] { ActionType.CreateCard }).OfType<CreateCardAction>())
{
    Console.WriteLine(action.Date + " - " + action.Data.Card.Name);
}

由于可能有很多动作 trello 使用分页。您可以传递一个Paging参数来告诉 trello 页面索引和页面大小。以下表示每页有 100 个动作,而您想要第一页 (0)。

foreach (var action in trello.Actions.ForBoard(board, 
    new[] { ActionType.CreateCard }, 
    paging: new Paging(100, 0)).OfType<CreateCardAction>())
{
    Console.WriteLine(action.Date + " - " + action.Data.Card.Name);
}

有一个名为的扩展方法AutoPaged()将有助于分页。添加 using 语句...

using TrelloNet.Extensions;

...并使用AutoPaged(). Trello.NET 将根据需要自动获取新页面。

foreach (var action in trello.Actions.AutoPaged().ForBoard(board, 
    new[] { ActionType.CreateCard }).OfType<CreateCardAction>())
{
    Console.WriteLine(action.Date + " - " + action.Data.Card.Name);
}

注意:自从新动作类型添加到 Trello.NET 以来已经有一段时间了,所以可能有一些新动作类型无法识别......

于 2014-04-28T06:21:16.723 回答