我能得到一张卡片的行动清单。然而,行动卡只有有限的信息,所以我如何获得行动的实际内容?
var actionList = trello.Actions.ForCard(card);
foreach (TrelloNet.Action action in actionList)当我浏览列表中的每个操作时,我只能看到发起操作、日期、成员和操作类型(例如TrelloNet.UpdateCardAction)的成员。我怎样才能了解行动的实际情况,例如把这张卡转到董事会上?
如果这不是获取实际操作信息的正确方法,请向我指出正确的逻辑路径。
谢谢,
Chi
发布于 2014-04-28 06:21:16
每种类型的操作都是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 TrelloNet.Extensions;...and使用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中添加了新的操作类型已经有一段时间了,因此可能有一些新的操作类型无法识别.
https://stackoverflow.com/questions/23304719
复制相似问题