4
4
using System . Text . Json ;
5
5
using System . Threading ;
6
6
using System . Threading . Tasks ;
7
+ using Microsoft . AspNetCore . Http . Json ;
8
+ using Microsoft . Extensions . Options ;
7
9
using Umbraco . Commerce . Core . Api ;
8
10
using Umbraco . Commerce . Core . Models ;
9
11
using Umbraco . Commerce . Deploy . Artifacts ;
10
12
using Umbraco . Commerce . Deploy . Configuration ;
11
13
using Umbraco . Cms . Core ;
12
14
using Umbraco . Cms . Core . Deploy ;
13
-
15
+ using Umbraco . Deploy . Core ;
14
16
using StringExtensions = Umbraco . Commerce . Extensions . StringExtensions ;
15
17
16
18
namespace Umbraco . Commerce . Deploy . Connectors . ServiceConnectors
17
19
{
18
20
[ UdiDefinition ( UmbracoCommerceConstants . UdiEntityType . ShippingMethod , UdiType . GuidUdi ) ]
19
- public class UmbracoCommerceShippingMethodServiceConnector : UmbracoCommerceStoreEntityServiceConnectorBase < ShippingMethodArtifact , ShippingMethodReadOnly , ShippingMethod , ShippingMethodState >
21
+ public class UmbracoCommerceShippingMethodServiceConnector (
22
+ IUmbracoCommerceApi umbracoCommerceApi ,
23
+ UmbracoCommerceDeploySettingsAccessor settingsAccessor ,
24
+ IOptionsMonitor < JsonOptions > jsonOptions )
25
+ : UmbracoCommerceStoreEntityServiceConnectorBase < ShippingMethodArtifact , ShippingMethodReadOnly , ShippingMethod ,
26
+ ShippingMethodState > ( umbracoCommerceApi , settingsAccessor )
20
27
{
28
+ private readonly JsonSerializerOptions _jsonSerializerOptions = jsonOptions . Get ( DeployConstants . JsonOptionsNames . Deploy ) . SerializerOptions ;
29
+
21
30
protected override int [ ] ProcessPasses => new [ ]
22
31
{
23
32
2 , 4
@@ -34,10 +43,6 @@ public class UmbracoCommerceShippingMethodServiceConnector : UmbracoCommerceStor
34
43
35
44
public override string UdiEntityType => UmbracoCommerceConstants . UdiEntityType . ShippingMethod ;
36
45
37
- public UmbracoCommerceShippingMethodServiceConnector ( IUmbracoCommerceApi umbracoCommerceApi , UmbracoCommerceDeploySettingsAccessor settingsAccessor )
38
- : base ( umbracoCommerceApi , settingsAccessor )
39
- { }
40
-
41
46
public override string GetEntityName ( ShippingMethodReadOnly entity )
42
47
=> entity . Name ;
43
48
@@ -137,12 +142,12 @@ public override IAsyncEnumerable<ShippingMethodReadOnly> GetEntitiesAsync(Guid s
137
142
artifact . CalculationConfig = JsonSerializer . SerializeToElement ( new FixedRateShippingCalculationConfigArtifact
138
143
{
139
144
Prices = servicesPrices
140
- } , Constants . DefaultJsonSerializerOptions ) ;
145
+ } , _jsonSerializerOptions ) ;
141
146
}
142
147
else
143
148
{
144
149
// No additional processing required
145
- artifact . CalculationConfig = JsonSerializer . SerializeToElement ( entity . CalculationConfig , Constants . DefaultJsonSerializerOptions ) ;
150
+ artifact . CalculationConfig = JsonSerializer . SerializeToElement ( entity . CalculationConfig , _jsonSerializerOptions ) ;
146
151
}
147
152
}
148
153
@@ -265,7 +270,7 @@ private Task Pass4Async(ArtifactDeployState<ShippingMethodArtifact, ShippingMeth
265
270
{
266
271
if ( artifact . CalculationMode == ( int ) ShippingCalculationMode . Fixed )
267
272
{
268
- FixedRateShippingCalculationConfigArtifact ? cfgArtifact = artifact . CalculationConfig ? . Deserialize < FixedRateShippingCalculationConfigArtifact > ( Constants . DefaultJsonSerializerOptions ) ;
273
+ FixedRateShippingCalculationConfigArtifact ? cfgArtifact = artifact . CalculationConfig ? . Deserialize < FixedRateShippingCalculationConfigArtifact > ( _jsonSerializerOptions ) ;
269
274
270
275
var prices = new List < ServicePrice > ( ) ;
271
276
@@ -290,11 +295,11 @@ private Task Pass4Async(ArtifactDeployState<ShippingMethodArtifact, ShippingMeth
290
295
}
291
296
else if ( artifact . CalculationMode == ( int ) ShippingCalculationMode . Dynamic )
292
297
{
293
- entity . SetCalculationConfig ( artifact . CalculationConfig ? . Deserialize < DynamicRateShippingCalculationConfig > ( Constants . DefaultJsonSerializerOptions ) ) ;
298
+ entity . SetCalculationConfig ( artifact . CalculationConfig ? . Deserialize < DynamicRateShippingCalculationConfig > ( _jsonSerializerOptions ) ) ;
294
299
}
295
300
else if ( artifact . CalculationMode == ( int ) ShippingCalculationMode . Realtime )
296
301
{
297
- entity . SetCalculationConfig ( artifact . CalculationConfig ? . Deserialize < RealtimeRateShippingCalculationConfig > ( Constants . DefaultJsonSerializerOptions ) ) ;
302
+ entity . SetCalculationConfig ( artifact . CalculationConfig ? . Deserialize < RealtimeRateShippingCalculationConfig > ( _jsonSerializerOptions ) ) ;
298
303
}
299
304
else
300
305
{
0 commit comments