首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Trello.Net:如何获取操作数据?

Trello.Net:如何获取操作数据?
EN

Stack Overflow用户
提问于 2014-04-25 23:31:26
回答 1查看 717关注 0票数 0

我能得到一张卡片的行动清单。然而,行动卡只有有限的信息,所以我如何获得行动的实际内容?

代码语言:javascript
复制
var actionList = trello.Actions.ForCard(card);
foreach (TrelloNet.Action action in actionList)

当我浏览列表中的每个操作时,我只能看到发起操作、日期、成员和操作类型(例如TrelloNet.UpdateCardAction)的成员。我怎样才能了解行动的实际情况,例如把这张卡转到董事会上?

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

谢谢,

Chi

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-28 06:21:16

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

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

代码语言:javascript
复制
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只请求特定的操作类型,方法是传递一个额外的参数,如下所示:

代码语言:javascript
复制
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)。

代码语言:javascript
复制
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()的扩展方法,它将帮助分页。添加一个使用语句..。

代码语言:javascript
复制
using TrelloNet.Extensions;

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

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

注:在Trello.NET中添加了新的操作类型已经有一段时间了,因此可能有一些新的操作类型无法识别.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23304719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档