【问题标题】:how to pass parameter like 'before' and 'limit' in Manatee Trello methods如何在 Manatee Trello 方法中传递“之前”和“限制”等参数
【发布时间】:2017-04-28 03:34:09
【问题描述】:

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

    Board board = new Board(boardId);
    var actions = board.Actions.ToList();

【问题讨论】:

    标签: trello manatee.trello


    【解决方案1】:

    在各种集合类型上有一些扩展方法可以修改 API 查询以添加这些参数。

    您要查找的第一个是Limit(this ReadOnlyActionCollection, int)。只需传递您想要的操作数。有效值(根据 API)为 0-1000。

    第二个是Filter(this ReadOnlyActionCollection, DateTime?, DateTime?),它允许您过滤since(开始)和before(结束)。 (API 文档说lastViewsince 参数的有效选项。目前不支持。)

    编辑

    请注意,这些扩展方法的工作方式与 LINQ 类似:它们返回查询的新实例。在枚举集合之前查询不会执行。

    编辑 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。

    【讨论】:

    • 我在这种类型上找到了这个扩展方法:“ReadOnlyActionCollection”。但是如何填充从这种类型派生的值:'ReadOnlyActionCollection r=;'因为我像这样填充对象:'var _actions = _board.Actions'。请写一个完整的例子
    • 您的操作正确无误。您只需要调用扩展方法。请参阅编辑 2。另外,请务必阅读 github wiki 中的文档。
    • 非常感谢您的回答,但如果我可以在此回复中附上图片,我会向您展示我在 Visual Studio 中的代码屏幕截图!我有“Filter()”扩展方法,但没有“Limit()”方法!
    • 啊!请参阅编辑 3。对此感到抱歉。更新待定。
    • 谢谢你!我是这样使用的:CollectionExtensions.Limit(board.Actions, 100);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    相关资源
    最近更新 更多