我可以获取卡片的操作列表。但是,动作卡只有有限的信息,那么我该如何获得动作的实际内容呢?
var actionList = trello.Actions.ForCard(card);
foreach (TrelloNet.Action action in actionList)
当我浏览列表中的每个操作时,我只能看到发起操作,日期,成员和操作类型的成员(例如TrelloNet.UpdateCardAction)。我怎样才能了解行动的实际情况,例如:把这张卡转移到了上面?
如果这不是获取实际操作信息的正确方法,请指出正确的逻辑路径。
谢谢,
志
答案 0 :(得分: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 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中,因此可能会有新的操作类型无法识别...