2016-03-22 17 views
2

Tüm tarih şeritleriyle Stripe faturalarını almaya çalışıyorum. Şu anda ServiceStack.Stripe paket yalnızca tarihi eşitlik sağlar: "lt", "LTE", "gt" ve "gte" için hiçbir seçenek vardırServiceStack Stripe tarih filtresine sahip tüm faturaları alın

[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; } 
} 

. Bu istek eklemek için

gibi bir şey gerekiyor:

?date%5Blt%5D=1337923293 
Biz, bu yüzden o kadar sınıf geçersiz kılmak için başka bir yol adı vardır öznitelik bir C# bu özel karakterleri kullanamazsınız

o tarih filtreleri için gerekli olan istek parametrelerini eşleştirmek için seri hale getirir?

cevap

2

Sadece özel bir tarih belirtmek için yeni DateOptions özelliğini kullanın kullanabilirsiniz Çizgili DateOptions in this commit desteği, örneğin size bir lt tarihi belirleyebilir ekledik: Mevcut

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

farklı tarihi Seçenekleri şunlardır:

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 
} 

Bu değişiklik available on MyGet şimdi var v4.0.55 edinilebilir.

+0

Çok fazla 4 özellikten yoksun, kullanıcı bir kaç tane belirtirse kafa karıştırıcı olabilir. StriperDateOptions {public DateComparison Operation {get; set;} public DateTime Date {get; set; }} // DateComparison, GreaterThan, GreaterThanOrEqualTo ... – labilbe

+1

ile bir enum nerede @labilbe Stripe's API'sinde nasıl uygulandıktan sonra modellenmiş, yeni bir soyutlamayı sadece diğer # Stripe kitaplıklarının nasıl yaptığı için C# için icat etmeye çalışmıyor . Stripe, REST API'lerini farklı şekilde tasarlayabilirdi, bu yüzden kullanım alanı ve yüzey alanı daha sınırlı, ancak bunu yaptığımız şekilde tasarladılar ve her özelliğin nasıl görüldüğünü daha kolay görebilmemiz için yazılan bir 1: 1 sarmalayıcıyla olabildiğince yakından takip ediyoruz. Stripe'nin belgelenmiş REST API'sini eşler. – mythz

+0

Aslında okunaklı görünüyor. – labilbe