Skip to content

Commit c2b2bd3

Browse files
committed
Merge pull request betfair#9 from mrtdoulaty/master
I've added the missing C# wrappers (listMarketProfitAndLoss, listCurrentOrders, listClearedOrders, cancelOrders, replaceOrders, updateOrders)
2 parents a6e917c + 8fbf94b commit c2b2bd3

26 files changed

+1084
-1
lines changed

cSharp/Api-ng-sample-code/Api-ng-sample-code/Api-ng-sample-code.csproj

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -79,8 +79,16 @@
7979
<SubType>Component</SubType>
8080
</Compile>
8181
<Compile Include="TO\APINGException.cs" />
82+
<Compile Include="TO\BetStatus.cs" />
83+
<Compile Include="TO\CancelExecutionReport-Mrt.cs" />
84+
<Compile Include="TO\CancelInstruction.cs" />
85+
<Compile Include="TO\CancelInstructionReport.cs" />
86+
<Compile Include="TO\ClearedOrderSummary.cs" />
87+
<Compile Include="TO\ClearedOrderSummaryReport.cs" />
8288
<Compile Include="TO\Competition.cs" />
8389
<Compile Include="TO\CompetitionResult.cs" />
90+
<Compile Include="TO\CurrentOrderSummary.cs" />
91+
<Compile Include="TO\CurrentOrderSummaryReport.cs" />
8492
<Compile Include="TO\Event.cs" />
8593
<Compile Include="TO\EventResult.cs" />
8694
<Compile Include="TO\EventType.cs" />
@@ -90,8 +98,10 @@
9098
<Compile Include="TO\ExchangePrices.cs" />
9199
<Compile Include="TO\ExecutionReportErrorCode.cs" />
92100
<Compile Include="TO\ExecutionReportStatus.cs" />
101+
<Compile Include="TO\GroupBy-Mrt.cs" />
93102
<Compile Include="TO\InstructionReportErrorCode.cs" />
94103
<Compile Include="TO\InstructionReportStatus.cs" />
104+
<Compile Include="TO\ItemDescription.cs" />
95105
<Compile Include="TO\LimitOnCloseOrder.cs" />
96106
<Compile Include="TO\LimitOrder.cs" />
97107
<Compile Include="TO\MarketBettingType.cs" />
@@ -100,12 +110,14 @@
100110
<Compile Include="TO\MarketDescription.cs" />
101111
<Compile Include="TO\MarketFilter.cs" />
102112
<Compile Include="TO\MarketOnCloseOrder.cs" />
113+
<Compile Include="TO\MarketProfitAndLoss.cs" />
103114
<Compile Include="TO\MarketProjection.cs" />
104115
<Compile Include="TO\MarketSort.cs" />
105116
<Compile Include="TO\MarketStatus.cs" />
106117
<Compile Include="TO\Match.cs" />
107118
<Compile Include="TO\MatchProjection.cs" />
108119
<Compile Include="TO\Order.cs" />
120+
<Compile Include="TO\OrderBy.cs" />
109121
<Compile Include="TO\OrderProjection.cs" />
110122
<Compile Include="TO\OrderStatus.cs" />
111123
<Compile Include="TO\OrderType.cs" />
@@ -116,13 +128,22 @@
116128
<Compile Include="TO\PriceData.cs" />
117129
<Compile Include="TO\PriceProjection.cs" />
118130
<Compile Include="TO\PriceSize.cs" />
131+
<Compile Include="TO\ReplaceExecutionReport.cs" />
132+
<Compile Include="TO\ReplaceInstruction.cs" />
133+
<Compile Include="TO\ReplaceInstructionReport.cs" />
119134
<Compile Include="TO\RollUpModel.cs" />
120135
<Compile Include="TO\Runner.cs" />
121136
<Compile Include="TO\RunnerDescription.cs" />
137+
<Compile Include="TO\RunnerId-Mrt.cs" />
138+
<Compile Include="TO\RunnerProfitAndLost.cs" />
122139
<Compile Include="TO\RunnerStatus.cs" />
123140
<Compile Include="TO\Side.cs" />
141+
<Compile Include="TO\SortDir.cs" />
124142
<Compile Include="TO\StartingPrices.cs" />
125143
<Compile Include="TO\TimeRange.cs" />
144+
<Compile Include="TO\UpdateExecutionReport.cs" />
145+
<Compile Include="TO\UpdateInstruction.cs" />
146+
<Compile Include="TO\UpdateInstructionReport.cs" />
126147
</ItemGroup>
127148
<ItemGroup>
128149
<WCFMetadata Include="Service References\" />

cSharp/Api-ng-sample-code/Api-ng-sample-code/IClient.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,36 @@ public interface IClient
2929
* */
3030
PlaceExecutionReport placeOrders(string marketId, string customerRef, IList<PlaceInstruction> placeInstructions, string locale = null);
3131

32+
/**
33+
* Lists market profit and loss
34+
* */
35+
IList<MarketProfitAndLoss> listMarketProfitAndLoss(IList<string> marketIds, bool includeSettledBets = false, bool includeBspBets = false, bool netOfCommission = false);
36+
37+
/**
38+
* Lists current orders
39+
* */
40+
CurrentOrderSummaryReport listCurrentOrders(ISet<String> betIds, ISet<String> marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null);
41+
42+
/**
43+
* Lists cleared orders
44+
* */
45+
ClearedOrderSummaryReport listClearedOrders(BetStatus betStatus, ISet<string> eventTypeIds = null, ISet<string> eventIds = null, ISet<string> marketIds = null, ISet<RunnerId> runnerIds = null, ISet<string> betIds = null, Side? side = null, TimeRange settledDateRange = null, GroupBy? groupBy = null, bool? includeItemDescription = null, String locale = null, int? fromRecord = null, int? recordCount = null);
46+
47+
/**
48+
* Cancels a bet, or decreases its size
49+
* */
50+
CancelExecutionReport cancelOrders(string marketId, IList<CancelInstruction> instructions, string customerRef);
51+
52+
/**
53+
* Replaces a bet: changes the price
54+
* */
55+
ReplaceExecutionReport replaceOrders(String marketId, IList<ReplaceInstruction> instructions, String customerRef);
56+
57+
/**
58+
* updates a bet
59+
* */
60+
UpdateExecutionReport updateOrders(String marketId, IList<UpdateInstruction> instructions, String customerRef);
61+
62+
3263
}
3364
}

cSharp/Api-ng-sample-code/Api-ng-sample-code/JsonRpcClient.cs

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ public class JsonRpcClient : HttpWebClientProtocol, IClient
2222
private static readonly string LIST_MARKET_CATALOGUE_METHOD = "SportsAPING/v1.0/listMarketCatalogue";
2323
private static readonly string LIST_MARKET_BOOK_METHOD = "SportsAPING/v1.0/listMarketBook";
2424
private static readonly string PLACE_ORDERS_METHOD = "SportsAPING/v1.0/placeOrders";
25+
private static readonly string LIST_MARKET_PROFIT_AND_LOST_METHOD = "SportsAPING/v1.0/listMarketProfitAndLoss";
26+
private static readonly string LIST_CURRENT_ORDERS_METHOD = "SportsAPING/v1.0/listCurrentOrders";
27+
private static readonly string LIST_CLEARED_ORDERS_METHOD = "SportsAPING/v1.0/listClearedOrders";
28+
private static readonly string CANCEL_ORDERS_METHOD = "SportsAPING/v1.0/cancelOrders";
29+
private static readonly string REPLACE_ORDERS_METHOD = "SportsAPING/v1.0/replaceOrders";
30+
private static readonly string UPDATE_ORDERS_METHOD = "SportsAPING/v1.0/updateOrders";
2531
private static readonly String FILTER = "filter";
2632
private static readonly String LOCALE = "locale";
2733
private static readonly String CURRENCY_CODE = "currencyCode";
@@ -35,6 +41,23 @@ public class JsonRpcClient : HttpWebClientProtocol, IClient
3541
private static readonly String MARKET_ID = "marketId";
3642
private static readonly String INSTRUCTIONS = "instructions";
3743
private static readonly String CUSTOMER_REFERENCE = "customerRef";
44+
private static readonly String INCLUDE_SETTLED_BETS = "includeSettledBets";
45+
private static readonly String INCLUDE_BSP_BETS = "includeBspBets";
46+
private static readonly String NET_OF_COMMISSION = "netOfCommission";
47+
private static readonly String BET_IDS = "betIds";
48+
private static readonly String PLACED_DATE_RANGE = "placedDateRange";
49+
private static readonly String ORDER_BY = "orderBy";
50+
private static readonly String SORT_DIR = "sortDir";
51+
private static readonly String FROM_RECORD = "fromRecord";
52+
private static readonly String RECORD_COUNT = "recordCount";
53+
private static readonly string BET_STATUS = "betStatus";
54+
private static readonly string EVENT_TYPE_IDS = "eventTypeIds";
55+
private static readonly string EVENT_IDS = "eventIds";
56+
private static readonly string RUNNER_IDS = "runnerIds";
57+
private static readonly string SIDE = "side";
58+
private static readonly string SETTLED_DATE_RANGE = "settledDateRange";
59+
private static readonly string GROUP_BY = "groupBy";
60+
private static readonly string INCLUDE_ITEM_DESCRIPTION = "includeItemDescription";
3861

3962
public JsonRpcClient(string endPoint, string appKey, string sessionToken)
4063
{
@@ -153,5 +176,82 @@ private static System.Exception ReconstituteException(Api_ng_sample_code.TO.Exce
153176
var exceptionData = data.Property(exceptionName).Value.ToString();
154177
return JsonConvert.Deserialize<APINGException>(exceptionData);
155178
}
179+
180+
public IList<MarketProfitAndLoss> listMarketProfitAndLoss(IList<string> marketIds, bool includeSettledBets = false, bool includeBspBets = false, bool netOfCommission = false)
181+
{
182+
var args = new Dictionary<string, object>();
183+
args[MARKET_IDS] = marketIds;
184+
args[INCLUDE_SETTLED_BETS] = includeSettledBets;
185+
args[INCLUDE_BSP_BETS] = includeBspBets;
186+
args[NET_OF_COMMISSION] = netOfCommission;
187+
return Invoke<List<MarketProfitAndLoss>>(LIST_MARKET_PROFIT_AND_LOST_METHOD, args);
188+
}
189+
190+
public CurrentOrderSummaryReport listCurrentOrders(ISet<String> betIds, ISet<String> marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null)
191+
{
192+
var args = new Dictionary<string, object>();
193+
args[BET_IDS] = betIds;
194+
args[MARKET_IDS] = marketIds;
195+
args[ORDER_PROJECTION] = orderProjection;
196+
args[PLACED_DATE_RANGE] = placedDateRange;
197+
args[ORDER_BY] = orderBy;
198+
args[SORT_DIR] = sortDir;
199+
args[FROM_RECORD] = fromRecord;
200+
args[RECORD_COUNT] = recordCount;
201+
202+
return Invoke<CurrentOrderSummaryReport>(LIST_CURRENT_ORDERS_METHOD, args);
203+
}
204+
205+
public ClearedOrderSummaryReport listClearedOrders(BetStatus betStatus, ISet<string> eventTypeIds = null, ISet<string> eventIds = null, ISet<string> marketIds = null, ISet<RunnerId> runnerIds = null, ISet<string> betIds = null, Side? side = null, TimeRange settledDateRange = null, GroupBy? groupBy = null, bool? includeItemDescription = null, String locale = null, int? fromRecord = null, int? recordCount = null)
206+
{
207+
var args = new Dictionary<string, object>();
208+
args[BET_STATUS] = betStatus;
209+
args[EVENT_TYPE_IDS] = eventTypeIds;
210+
args[EVENT_IDS] = eventIds;
211+
args[MARKET_IDS] = marketIds;
212+
args[RUNNER_IDS] = runnerIds;
213+
args[BET_IDS] = betIds;
214+
args[SIDE] = side;
215+
args[SETTLED_DATE_RANGE] = settledDateRange;
216+
args[GROUP_BY] = groupBy;
217+
args[INCLUDE_ITEM_DESCRIPTION] = includeItemDescription;
218+
args[LOCALE] = locale;
219+
args[FROM_RECORD] = fromRecord;
220+
args[RECORD_COUNT] = recordCount;
221+
222+
return Invoke<ClearedOrderSummaryReport>(LIST_CLEARED_ORDERS_METHOD, args);
223+
}
224+
225+
226+
public CancelExecutionReport cancelOrders(string marketId, IList<CancelInstruction> instructions, string customerRef)
227+
{
228+
var args = new Dictionary<string, object>();
229+
args[MARKET_ID] = marketId;
230+
args[INSTRUCTIONS] = instructions;
231+
args[CUSTOMER_REFERENCE] = customerRef;
232+
233+
return Invoke<CancelExecutionReport>(CANCEL_ORDERS_METHOD, args);
234+
}
235+
236+
public ReplaceExecutionReport replaceOrders(String marketId, IList<ReplaceInstruction> instructions, String customerRef)
237+
{
238+
var args = new Dictionary<string, object>();
239+
args[MARKET_ID] = marketId;
240+
args[INSTRUCTIONS] = instructions;
241+
args[CUSTOMER_REFERENCE] = customerRef;
242+
243+
return Invoke<ReplaceExecutionReport>(REPLACE_ORDERS_METHOD, args);
244+
}
245+
246+
public UpdateExecutionReport updateOrders(String marketId, IList<UpdateInstruction> instructions, String customerRef)
247+
{
248+
var args = new Dictionary<string, object>();
249+
args[MARKET_ID] = marketId;
250+
args[INSTRUCTIONS] = instructions;
251+
args[CUSTOMER_REFERENCE] = customerRef;
252+
253+
return Invoke<UpdateExecutionReport>(UPDATE_ORDERS_METHOD, args);
254+
}
255+
156256
}
157257
}

cSharp/Api-ng-sample-code/Api-ng-sample-code/RescriptClient.cs

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ public class RescriptClient : HttpWebClientProtocol, IClient
2222
private static readonly string LIST_MARKET_CATALOGUE_METHOD = "listMarketCatalogue";
2323
private static readonly string LIST_MARKET_BOOK_METHOD = "listMarketBook";
2424
private static readonly string PLACE_ORDERS_METHOD = "placeOrders";
25+
private static readonly string LIST_MARKET_PROFIT_AND_LOST_METHOD = "listMarketProfitAndLoss";
26+
private static readonly string LIST_CURRENT_ORDERS_METHOD = "listCurrentOrders";
27+
private static readonly string LIST_CLEARED_ORDERS_METHOD = "listClearedOrders";
28+
private static readonly string CANCEL_ORDERS_METHOD = "cancelOrders";
29+
private static readonly string REPLACE_ORDERS_METHOD = "replaceOrders";
30+
private static readonly string UPDATE_ORDERS_METHOD = "updateOrders";
2531
private static readonly String FILTER = "filter";
2632
private static readonly String LOCALE = "locale";
2733
private static readonly String CURRENCY_CODE = "currencyCode";
@@ -35,6 +41,23 @@ public class RescriptClient : HttpWebClientProtocol, IClient
3541
private static readonly String MARKET_ID = "marketId";
3642
private static readonly String INSTRUCTIONS = "instructions";
3743
private static readonly String CUSTOMER_REFERENCE = "customerRef";
44+
private static readonly string INCLUDE_SETTLED_BETS = "includeSettledBets";
45+
private static readonly String INCLUDE_BSP_BETS = "includeBspBets";
46+
private static readonly String NET_OF_COMMISSION = "netOfCommission";
47+
private static readonly String BET_IDS = "betIds";
48+
private static readonly String PLACED_DATE_RANGE = "placedDateRange";
49+
private static readonly String ORDER_BY = "orderBy";
50+
private static readonly String SORT_DIR = "sortDir";
51+
private static readonly String FROM_RECORD = "fromRecord";
52+
private static readonly String RECORD_COUNT = "recordCount";
53+
private static readonly string BET_STATUS = "betStatus";
54+
private static readonly string EVENT_TYPE_IDS = "eventTypeIds";
55+
private static readonly string EVENT_IDS = "eventIds";
56+
private static readonly string RUNNER_IDS = "runnerIds";
57+
private static readonly string SIDE = "side";
58+
private static readonly string SETTLED_DATE_RANGE = "settledDateRange";
59+
private static readonly string GROUP_BY = "groupBy";
60+
private static readonly string INCLUDE_ITEM_DESCRIPTION = "includeItemDescription";
3861

3962

4063
public RescriptClient(string endPoint, string appKey, string sessionToken)
@@ -159,5 +182,80 @@ private static System.Exception ReconstituteException(Api_ng_sample_code.TO.Exce
159182

160183
}
161184

185+
public IList<MarketProfitAndLoss> listMarketProfitAndLoss(IList<string> marketIds, bool includeSettledBets = false, bool includeBspBets = false, bool netOfCommission = false)
186+
{
187+
var args = new Dictionary<string, object>();
188+
args[MARKET_IDS] = marketIds;
189+
args[INCLUDE_SETTLED_BETS] = includeSettledBets;
190+
args[INCLUDE_BSP_BETS] = includeBspBets;
191+
args[NET_OF_COMMISSION] = netOfCommission;
192+
193+
return Invoke<List<MarketProfitAndLoss>>(LIST_MARKET_PROFIT_AND_LOST_METHOD, args);
194+
}
195+
196+
public CurrentOrderSummaryReport listCurrentOrders(ISet<String> betIds, ISet<String> marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null)
197+
{
198+
var args = new Dictionary<string, object>();
199+
args[BET_IDS] = betIds;
200+
args[MARKET_IDS] = marketIds;
201+
args[ORDER_PROJECTION] = orderProjection;
202+
args[PLACED_DATE_RANGE] = placedDateRange;
203+
args[ORDER_BY] = orderBy;
204+
args[SORT_DIR] = sortDir;
205+
args[FROM_RECORD] = fromRecord;
206+
args[RECORD_COUNT] = recordCount;
207+
208+
return Invoke<CurrentOrderSummaryReport>(LIST_CURRENT_ORDERS_METHOD, args);
209+
}
210+
211+
public ClearedOrderSummaryReport listClearedOrders(BetStatus betStatus, ISet<string> eventTypeIds = null, ISet<string> eventIds = null, ISet<string> marketIds = null, ISet<RunnerId> runnerIds = null, ISet<string> betIds = null, Side? side = null, TimeRange settledDateRange = null, GroupBy? groupBy = null, bool? includeItemDescription = null, String locale = null, int? fromRecord = null, int? recordCount = null)
212+
{
213+
var args = new Dictionary<string, object>();
214+
args[BET_STATUS] = betStatus;
215+
args[EVENT_TYPE_IDS] = eventTypeIds;
216+
args[EVENT_IDS] = eventIds;
217+
args[MARKET_IDS] = marketIds;
218+
args[RUNNER_IDS] = runnerIds;
219+
args[BET_IDS] = betIds;
220+
args[SIDE] = side;
221+
args[SETTLED_DATE_RANGE] = settledDateRange;
222+
args[GROUP_BY] = groupBy;
223+
args[INCLUDE_ITEM_DESCRIPTION] = includeItemDescription;
224+
args[LOCALE] = locale;
225+
args[FROM_RECORD] = fromRecord;
226+
args[RECORD_COUNT] = recordCount;
227+
228+
return Invoke<ClearedOrderSummaryReport>(LIST_CLEARED_ORDERS_METHOD, args);
229+
}
230+
231+
public CancelExecutionReport cancelOrders(string marketId, IList<CancelInstruction> instructions, string customerRef)
232+
{
233+
var args = new Dictionary<string, object>();
234+
args[MARKET_ID] = marketId;
235+
args[INSTRUCTIONS] = instructions;
236+
args[CUSTOMER_REFERENCE] = customerRef;
237+
238+
return Invoke<CancelExecutionReport>(CANCEL_ORDERS_METHOD, args);
239+
}
240+
241+
public ReplaceExecutionReport replaceOrders(String marketId, IList<ReplaceInstruction> instructions, String customerRef)
242+
{
243+
var args = new Dictionary<string, object>();
244+
args[MARKET_ID] = marketId;
245+
args[INSTRUCTIONS] = instructions;
246+
args[CUSTOMER_REFERENCE] = customerRef;
247+
248+
return Invoke<ReplaceExecutionReport>(REPLACE_ORDERS_METHOD, args);
249+
}
250+
251+
public UpdateExecutionReport updateOrders(String marketId, IList<UpdateInstruction> instructions, String customerRef)
252+
{
253+
var args = new Dictionary<string, object>();
254+
args[MARKET_ID] = marketId;
255+
args[INSTRUCTIONS] = instructions;
256+
args[CUSTOMER_REFERENCE] = customerRef;
257+
258+
return Invoke<UpdateExecutionReport>(UPDATE_ORDERS_METHOD, args);
259+
}
162260
}
163261
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using Newtonsoft.Json;
6+
using Newtonsoft.Json.Converters;
7+
8+
9+
namespace Api_ng_sample_code.TO
10+
{
11+
[JsonConverter(typeof(StringEnumConverter))]
12+
public enum BetStatus
13+
{
14+
SETTLED,
15+
VOIDED,
16+
LAPSED,
17+
CANCELLED
18+
}
19+
}

0 commit comments

Comments
 (0)