ServiceStack Stripe使用日期过滤器获取所有发票

时间:2016-03-22 23:50:10

标签: servicestack stripe-payments

我试图通过日期过滤器获取所有Stripe发票。目前ServiceStack.Stripe包只允许日期相等:

[Route("/invoices")]
public class GetStripeInvoices : IGet, IReturn<StripeCollection<StripeInvoice>>
{
    public string Customer { get; set; }
    public DateTime? Date { get; set; }
    public int? Count { get; set; }
    public int? Offset { get; set; }
}

&#34; lt&#34;,&#34; lte&#34;,&#34; gt&#34;没有选项和&#34; gte&#34;。

为了添加这些请求,需要看起来像:

?date%5Blt%5D=1337923293

我们无法在C#属性名称中使用这些特殊字符,那么是否有另一种覆盖类的方法,以便它序列化以匹配日期过滤器所需的请求参数?

1 个答案:

答案 0 :(得分:2)

我刚刚添加了对Stripe DateOptions in this commit的支持,您可以使用新的DateOptions属性来指定自定义日期,例如,您可以指定lt日期:

var response = gateway.Get(new GetStripeInvoices
{
    DateOptions = new StripeDateOptions {
        Before = DateTime.UtcNow
    }
});

可用的不同日期选项包括:

public class StripeDateOptions
{
    public DateTime? After { get; set; }      //gt
    public DateTime? OnOrAfter { get; set; }  //gte
    public DateTime? Before { get; set; }     //lt
    public DateTime? OnOrBefore { get; set; } //lte
}

此更改现在可从v4.0.55获得,现在为available on MyGet