2013-05-27 84 views
2

我有以下的DTOC#的客戶端 - 路由選擇器

[Route("/Locations/{Code}/ToLocal/{Datetime}")] 
[Route("/Locations/{Code}/ToUTC/{Datetime}")] 
public class TimeConvertToLocal : IReturn<TimeConvertResponse> 
{ 
..... 

,並使用C#的客戶這樣說:

var result = client.Get(new TimeConvert() 
{          
    Code = 'ABC', 
    Datetime = DateTime.Now.ToString("yyyyMMddTHHmmss") 
}); 

它工作,但總是選擇ToUTC路線。我應該如何告訴客戶選擇ToLocal路線?或者我應該改變我的實施,並將其分成兩個DTOs

+0

您的客戶應始終將日期作爲當地時間發送。我假設你有一個基於客戶端區域設置的查找。如果您不存儲客戶端區域設置,則需要使用另一種方法在客戶端的區域設置中進行發送。使用語言環境,您可以執行後續的計算。 –

+0

謝謝,但不是我的問題。我只想知道如何通過ServiceStack C#客戶端來使用「ToLocal」或「ToUTC」路由。 – Djemel

回答

1

您可以添加另一個變量到您的路線。類似Route(「/ Locations/{Code}/{Format}/{Datetime}」),並讓客戶端指定。

既然你命名了TimeConvertToLocal類,你也可以考慮創建一個新的請求DTO TimeConvertToUTC。或者最後,只需向客戶提供兩個答案,然後讓他們選擇他們想要的答案。例如:Route(「/ Locations/{Code}/{Datetime}」),您的響應將包含本地時間和UTC時間。

+0

謝謝你的答案邁克 - 事實上,我們最終做了你的第一個解決方案,但會改變爲第二個,因爲它更優雅。 – Djemel