首先,感谢@gregdennis。我使用 Manatee Trello 命名空间从 Trello 板查询和获取操作。在每个请求上获取实体都有一个限制(默认为 50 个)。在我阅读的在线 API 文档中,有几个参数,例如“限制”和“之前”。我如何将这些参数传递给我的代码中的方法,我的示例获取代码在这里:
Board board = new Board(boardId);
var actions = board.Actions.ToList();
首先,感谢@gregdennis。我使用 Manatee Trello 命名空间从 Trello 板查询和获取操作。在每个请求上获取实体都有一个限制(默认为 50 个)。在我阅读的在线 API 文档中,有几个参数,例如“限制”和“之前”。我如何将这些参数传递给我的代码中的方法,我的示例获取代码在这里:
Board board = new Board(boardId);
var actions = board.Actions.ToList();
在各种集合类型上有一些扩展方法,它们将修改 API 查询以添加这些参数。
您要查找的第一个是Limit(this ReadOnlyActionCollection, int)
. 只需传递您想要的操作数。有效值(根据 API)为 0-1000。
第二个是Filter(this ReadOnlyActionCollection, DateTime?, DateTime?)
允许您过滤since
(开始)和before
(结束)。(API 文档说这lastView
是参数的有效选项since
。目前不支持。)
编辑
请注意,这些扩展方法的工作方式与 LINQ 类似:它们返回查询的新实例。在枚举集合之前,查询不会执行。
编辑 2
要获得任何集合,您必须首先拥有一个 Trello 实体(板、列表、卡片等)。没有定义它的对象,集合是没有意义的。例如,板子有列表,列表有卡片,卡片有清单,所有这些都有动作。
因此,要获得包含一张卡片的 500 个最近操作的集合,
var card = new Card("<ID>");
var actions500 = card.Actions.Limit(500);
foreach(var action in actions500)
{
Console.WriteLine(action);
}
编辑 3
好的。我看到了问题。我没有在扩展中使用this
关键字。Limit()
我会解决这个问题并发布更新。
在此之前,请静态使用该方法:
Collections.Limit(card.Actions, 100);
编辑 4
从 Manatee.Trello 版本 3.0.0 开始,Limit
是所有集合的属性。大多数类型的默认值为 50。