如何在 Manatee Trello 方法中传递 'before' 和 'limit' 等参数

how to pass parameter like 'before' and 'limit' in Manatee Trello methods

首先,感谢@gregdennis。我使用 Manatee Trello 命名空间从 Trello 看板查询和获取操作。在每个请求中获取实体是有限制的(默认为 50)。在我阅读的在线 API 文档中,有几个参数,例如 'limit' 和 'before'。我如何将这些参数传递给代码中的方法,我的示例获取代码在这里:

    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 文档说 lastViewsince 参数的有效选项。目前不支持。)

编辑

请注意,这些扩展方法就像 LINQ 一样工作:它们 return 查询的新实例。在枚举集合之前不会执行查询。

编辑 2

要获取任何集合,您必须首先拥有一个 Trello 实体(看板、列表、卡片等)。如果没有定义它的对象,集合就毫无意义。例如,看板有清单,清单有卡片,卡片有清单,所有这些都有行动。

因此,要获得包含卡片最近 500 个操作的集合,

var card = new Card("<ID>");
var actions500 = card.Actions.Limit(500);
foreach(var action in actions500)
{
    Console.WriteLine(action);
}

编辑 3

好的。我看到了问题。我没有在 Limit() 扩展中使用 this 关键字。我会解决这个问题并发布更新的。

在此之前,请静态使用该方法:

Collections.Limit(card.Actions, 100);

编辑 4

从 Manatee.Trello 版本 3.0.0 开始,Limit 是所有集合的 属性。大多数类型的默认值为 50。