Skip to content

Commit 153564e

Browse files
committed
Promo bet
1 parent b30ca8a commit 153564e

16 files changed

+1083
-16
lines changed

mbs-sdk-dotnet-promo-offer.patch

Lines changed: 687 additions & 0 deletions
Large diffs are not rendered by default.

src/Sportradar.Mbs.Sdk/Entities/Common/CasinoContext.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
using Sportradar.Mbs.Sdk.Entities.Channel;
2+
using Sportradar.Mbs.Sdk.Entities.Common;
3+
using System;
4+
using System.Text.Json;
25
using System.Text.Json.Serialization;
36

47
namespace Sportradar.Mbs.Sdk.Entities.Common;
58

69
public class CasinoContext
710
{
8-
911
[JsonPropertyName("walletId")]
1012
public String? WalletId { get; set; }
1113

14+
[JsonPropertyName("rates")]
15+
public ExchangeRate[]? Rates { get; set; }
16+
1217
[JsonPropertyName("channel")]
1318
public ChannelBase? Channel { get; set; }
1419

@@ -39,6 +44,18 @@ public Builder SetWalletId(String value)
3944
return this;
4045
}
4146

47+
public Builder SetRates(params ExchangeRate[] value)
48+
{
49+
this.instance.Rates = value;
50+
return this;
51+
}
52+
53+
public Builder SetRates<T>(IList<T> value) where T : ExchangeRate
54+
{
55+
ExchangeRate[] arr = value.ToArray();
56+
return SetRates(arr);
57+
}
58+
4259
public Builder SetChannel(ChannelBase value)
4360
{
4461
this.instance.Channel = value;
@@ -51,4 +68,4 @@ public Builder SetEndCustomer(EndCustomer value)
5168
return this;
5269
}
5370
}
54-
}
71+
}

src/Sportradar.Mbs.Sdk/Entities/Common/TicketContext.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
using Sportradar.Mbs.Sdk.Entities.Channel;
2+
using Sportradar.Mbs.Sdk.Entities.Common;
23
using Sportradar.Mbs.Sdk.Entities.Payout;
34
using Sportradar.Mbs.Sdk.Entities.Ref;
5+
using System;
6+
using System.Text.Json;
47
using System.Text.Json.Serialization;
58

69
namespace Sportradar.Mbs.Sdk.Entities.Common;
710

811
public class TicketContext
912
{
10-
1113
[JsonPropertyName("walletId")]
1214
public String? WalletId { get; set; }
1315

1416
[JsonPropertyName("ref")]
1517
public TicketRefBase? Ref { get; set; }
1618

19+
[JsonPropertyName("rates")]
20+
public ExchangeRate[]? Rates { get; set; }
21+
1722
[JsonPropertyName("channel")]
1823
public ChannelBase? Channel { get; set; }
1924

@@ -56,6 +61,18 @@ public Builder SetRef(TicketRefBase value)
5661
return this;
5762
}
5863

64+
public Builder SetRates(params ExchangeRate[] value)
65+
{
66+
this.instance.Rates = value;
67+
return this;
68+
}
69+
70+
public Builder SetRates<T>(IList<T> value) where T : ExchangeRate
71+
{
72+
ExchangeRate[] arr = value.ToArray();
73+
return SetRates(arr);
74+
}
75+
5976
public Builder SetChannel(ChannelBase value)
6077
{
6178
this.instance.Channel = value;
@@ -86,4 +103,4 @@ public Builder SetEndCustomer(EndCustomer value)
86103
return this;
87104
}
88105
}
89-
}
106+
}

src/Sportradar.Mbs.Sdk/Entities/Location/LocationBase.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Sportradar.Mbs.Sdk.Entities.Location;
12
using System.Text.Json;
23
using System.Text.Json.Serialization;
34

@@ -6,7 +7,6 @@ namespace Sportradar.Mbs.Sdk.Entities.Location;
67
[JsonConverter(typeof(LocationBaseJsonConverter))]
78
public abstract class LocationBase
89
{
9-
1010
public static GeoLocation.Builder NewGeoLocationBuilder()
1111
{
1212
return GeoLocation.NewBuilder();
@@ -15,10 +15,9 @@ public static GeoLocation.Builder NewGeoLocationBuilder()
1515

1616
public class LocationBaseJsonConverter : JsonConverter<LocationBase>
1717
{
18-
1918
public override LocationBase Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
2019
{
21-
using var doc = JsonDocument.ParseValue(ref reader);
20+
using JsonDocument doc = JsonDocument.ParseValue(ref reader);
2221
var root = doc.RootElement;
2322
var type = root.GetProperty("type").GetString();
2423

@@ -34,4 +33,4 @@ public override void Write(Utf8JsonWriter writer, LocationBase value, JsonSerial
3433
{
3534
JsonSerializer.Serialize(writer, value, value.GetType(), options);
3635
}
37-
}
36+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using Sportradar.Mbs.Sdk.Entities.Odds;
2+
using System.Text.Json;
3+
using System.Text.Json.Serialization;
4+
5+
namespace Sportradar.Mbs.Sdk.Entities.Payoutmodifiersettlement;
6+
7+
public class OddsPayoutModifierSettlement : PayoutModifierSettlementBase
8+
{
9+
[JsonInclude]
10+
[JsonPropertyName("type")]
11+
private string Type => "odds";
12+
13+
[JsonPropertyName("odds")]
14+
public OddsBase? Odds { get; set; }
15+
16+
public static Builder NewBuilder()
17+
{
18+
return new Builder();
19+
}
20+
21+
public class Builder
22+
{
23+
private readonly OddsPayoutModifierSettlement instance = new OddsPayoutModifierSettlement();
24+
25+
internal Builder()
26+
{
27+
}
28+
29+
public OddsPayoutModifierSettlement Build()
30+
{
31+
return this.instance;
32+
}
33+
34+
public Builder SetOdds(OddsBase value)
35+
{
36+
this.instance.Odds = value;
37+
return this;
38+
}
39+
}
40+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using Sportradar.Mbs.Sdk.Entities.Payoutmodifiersettlement;
2+
using System.Text.Json;
3+
using System.Text.Json.Serialization;
4+
5+
namespace Sportradar.Mbs.Sdk.Entities.Payoutmodifiersettlement;
6+
7+
[JsonConverter(typeof(PayoutModifierSettlementBaseJsonConverter))]
8+
public abstract class PayoutModifierSettlementBase
9+
{
10+
public static ResultPayoutModifierSettlement.Builder NewResultPayoutModifierSettlementBuilder()
11+
{
12+
return ResultPayoutModifierSettlement.NewBuilder();
13+
}
14+
15+
public static OddsPayoutModifierSettlement.Builder NewOddsPayoutModifierSettlementBuilder()
16+
{
17+
return OddsPayoutModifierSettlement.NewBuilder();
18+
}
19+
}
20+
21+
public class PayoutModifierSettlementBaseJsonConverter : JsonConverter<PayoutModifierSettlementBase>
22+
{
23+
public override PayoutModifierSettlementBase Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
24+
{
25+
using JsonDocument doc = JsonDocument.ParseValue(ref reader);
26+
var root = doc.RootElement;
27+
var type = root.GetProperty("type").GetString();
28+
29+
PayoutModifierSettlementBase? result = type switch
30+
{
31+
"odds" => JsonSerializer.Deserialize<OddsPayoutModifierSettlement>(root.GetRawText()),
32+
"result" => JsonSerializer.Deserialize<ResultPayoutModifierSettlement>(root.GetRawText()),
33+
_ => throw new JsonException("Unknown type of PayoutModifierSettlementBase: " + type)
34+
};
35+
return result ?? throw new NullReferenceException("Null PayoutModifierSettlementBase: " + type);
36+
}
37+
38+
public override void Write(Utf8JsonWriter writer, PayoutModifierSettlementBase value, JsonSerializerOptions options)
39+
{
40+
JsonSerializer.Serialize(writer, value, value.GetType(), options);
41+
}
42+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using Sportradar.Mbs.Sdk.Entities.Resulting;
2+
using System.Text.Json;
3+
using System.Text.Json.Serialization;
4+
5+
namespace Sportradar.Mbs.Sdk.Entities.Payoutmodifiersettlement;
6+
7+
public class ResultPayoutModifierSettlement : PayoutModifierSettlementBase
8+
{
9+
[JsonInclude]
10+
[JsonPropertyName("type")]
11+
private string Type => "result";
12+
13+
[JsonPropertyName("result")]
14+
public SelectionResultBase? Result { get; set; }
15+
16+
public static Builder NewBuilder()
17+
{
18+
return new Builder();
19+
}
20+
21+
public class Builder
22+
{
23+
private readonly ResultPayoutModifierSettlement instance = new ResultPayoutModifierSettlement();
24+
25+
internal Builder()
26+
{
27+
}
28+
29+
public ResultPayoutModifierSettlement Build()
30+
{
31+
return this.instance;
32+
}
33+
34+
public Builder SetResult(SelectionResultBase value)
35+
{
36+
this.instance.Result = value;
37+
return this;
38+
}
39+
}
40+
}

src/Sportradar.Mbs.Sdk/Entities/Probability/SelectionProbabilityBase.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Sportradar.Mbs.Sdk.Entities.Probability;
12
using System.Text.Json;
23
using System.Text.Json.Serialization;
34

@@ -6,7 +7,6 @@ namespace Sportradar.Mbs.Sdk.Entities.Probability;
67
[JsonConverter(typeof(SelectionProbabilityBaseJsonConverter))]
78
public abstract class SelectionProbabilityBase
89
{
9-
1010
public static WinSelectionProbability.Builder NewWinSelectionProbabilityBuilder()
1111
{
1212
return WinSelectionProbability.NewBuilder();
@@ -20,10 +20,9 @@ public static PushSelectionProbability.Builder NewPushSelectionProbabilityBuilde
2020

2121
public class SelectionProbabilityBaseJsonConverter : JsonConverter<SelectionProbabilityBase>
2222
{
23-
2423
public override SelectionProbabilityBase Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
2524
{
26-
using var doc = JsonDocument.ParseValue(ref reader);
25+
using JsonDocument doc = JsonDocument.ParseValue(ref reader);
2726
var root = doc.RootElement;
2827
var type = root.GetProperty("type").GetString();
2928

@@ -40,4 +39,4 @@ public override void Write(Utf8JsonWriter writer, SelectionProbabilityBase value
4039
{
4140
JsonSerializer.Serialize(writer, value, value.GetType(), options);
4241
}
43-
}
42+
}

src/Sportradar.Mbs.Sdk/Entities/Request/ContentRequestBase.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Sportradar.Mbs.Sdk.Entities.Request;
12
using System.Text.Json;
23
using System.Text.Json.Serialization;
34

@@ -117,6 +118,10 @@ public static BalanceChangeInformRequest.Builder NewBalanceChangeInformRequestBu
117118
return BalanceChangeInformRequest.NewBuilder();
118119
}
119120

121+
public static PayoutModifierSettlementRequest.Builder NewPayoutModifierSettlementRequestBuilder()
122+
{
123+
return PayoutModifierSettlementRequest.NewBuilder();
124+
}
120125
}
121126

122127
public class ContentRequestBaseJsonConverter : JsonConverter<ContentRequestBase>
@@ -147,6 +152,7 @@ public override ContentRequestBase Read(ref Utf8JsonReader reader, Type typeToCo
147152
"ext-settlement" => JsonSerializer.Deserialize<ExtSettlementRequest>(root.GetRawText()),
148153
"ext-settlement-ack" => JsonSerializer.Deserialize<ExtSettlementAckRequest>(root.GetRawText()),
149154
"max-stake" => JsonSerializer.Deserialize<MaxStakeRequest>(root.GetRawText()),
155+
"payout-modifier-settlement" => JsonSerializer.Deserialize<PayoutModifierSettlementRequest>(root.GetRawText()),
150156
"ticket" => JsonSerializer.Deserialize<TicketRequest>(root.GetRawText()),
151157
"ticket-ack" => JsonSerializer.Deserialize<TicketAckRequest>(root.GetRawText()),
152158
"ticket-build" => JsonSerializer.Deserialize<TicketBuildRequest>(root.GetRawText()),
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
using Sportradar.Mbs.Sdk.Entities.Payoutmodifiersettlement;
2+
using System;
3+
using System.Text.Json;
4+
using System.Text.Json.Serialization;
5+
6+
namespace Sportradar.Mbs.Sdk.Entities.Request;
7+
8+
public class PayoutModifierSettlementRequest : ContentRequestBase
9+
{
10+
[JsonInclude]
11+
[JsonPropertyName("type")]
12+
private string Type => "payout-modifier-settlement";
13+
14+
[JsonPropertyName("reference")]
15+
public String? Reference { get; set; }
16+
17+
[JsonPropertyName("settlementId")]
18+
public String? SettlementId { get; set; }
19+
20+
[JsonPropertyName("settlement")]
21+
public PayoutModifierSettlementBase? Settlement { get; set; }
22+
23+
public static Builder NewBuilder()
24+
{
25+
return new Builder();
26+
}
27+
28+
public class Builder
29+
{
30+
private readonly PayoutModifierSettlementRequest instance = new PayoutModifierSettlementRequest();
31+
32+
internal Builder()
33+
{
34+
}
35+
36+
public PayoutModifierSettlementRequest Build()
37+
{
38+
return this.instance;
39+
}
40+
41+
public Builder SetReference(String value)
42+
{
43+
this.instance.Reference = value;
44+
return this;
45+
}
46+
47+
public Builder SetSettlementId(String value)
48+
{
49+
this.instance.SettlementId = value;
50+
return this;
51+
}
52+
53+
public Builder SetSettlement(PayoutModifierSettlementBase value)
54+
{
55+
this.instance.Settlement = value;
56+
return this;
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)