.NET WooRestAPI (WooCommerce) 获取所有订单

.NET WooRestAPI (WooCommerce) Get All Orders

我正在使用 WooCommerce.NET 包装器 class 与 WooCommerce API v2 进行通信。我正在尝试 GetAll() 订单,但它对每页返回 10 个有限制。

这是我目前所拥有的:

try
{
    WooRestAPI rest = new WooRestAPI(baseUrl, key, secret);
    WCObject wc = new WCObject(rest);
    var getOrders = await wc.Order.GetAll(new Dictionary<string, string>() {
        { "page", "1" },
        { "per_page", "50" } }); 
    orders = ExtractWooData(getOrders);
    WriteToConsole(orders);
    WriteToFile(orders, outputPath);
}
catch (Exception e)
{
     throw new Exception(e.Message);
}

new Dictionary<string, string>()WooRestAPI docs 可用的参数。

我已经尝试查看 wc 对象以查看我是否可以以某种方式查询页面,但它似乎没有任何相关的 属性。

如果相关的话,这也将是一个 async Azure 函数。我将如何构建页面以使其 returns 所有订单数据而不仅仅是 1 页?

我明白了。我做了一个永远的 while 循环,每次将 1 添加到页码。如果 wc.Order.GetAll() returns 计数小于 per_page 限制提取数据并 break 退出循环(意味着它是最后一次调用),否则提取数据并递增page#:

try 
{
    WooRestAPI rest = new WooRestAPI(baseUrl, key, secret);
    WCObject wc = new WCObject(rest);
    int pageNum = 1;
    while (true) 
    {
        var page = pageNum.ToString();
        var getOrders = await wc.Order.GetAll(new Dictionary < string, string > () {
                {
                    "page", page
                }, {
                    "per_page", "100"
                }
        });
        if (getOrders.Count < 100) 
        {
            ExtractWooData(getOrders);
            break;
        } 
        else 
        {
            ExtractWooData(getOrders);
            pageNum++;
        }
    }
    WriteToConsole(orders);
    WriteToFile(orders, outputPath);
} 
catch (Exception e) 
{
    throw new Exception(e.Message);
}