Skip to content

Commit ffc2603

Browse files
Null check config object
1 parent 382d4b9 commit ffc2603

File tree

1 file changed

+38
-35
lines changed

1 file changed

+38
-35
lines changed

src/Umbraco.Commerce.Deploy/Connectors/ServiceConnectors/UmbracoCommerceShippingMethodServiceConnector.cs

Lines changed: 38 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -87,56 +87,59 @@ public override ShippingMethodArtifact GetArtifact(GuidUdi udi, ShippingMethodRe
8787
// it's config is all plugin based, we can't be certain of the data structure
8888
// and so we just have to pass the value through. Realtime rates don't currently
8989
// have any dependencies.
90-
if (entity.CalculationMode == ShippingCalculationMode.Fixed && entity.CalculationConfig is FixedRateShippingCalculationConfig calcConfig)
90+
if (entity.CalculationConfig != null)
9191
{
92-
var servicesPrices = new List<ServicePriceArtifact>();
93-
94-
foreach (var price in calcConfig.Prices)
92+
if (entity.CalculationMode == ShippingCalculationMode.Fixed && entity.CalculationConfig is FixedRateShippingCalculationConfig calcConfig)
9593
{
96-
var spArtifact = new ServicePriceArtifact { Value = price.Value };
94+
var servicesPrices = new List<ServicePriceArtifact>();
9795

98-
// Currency
99-
var currencyDepUdi = new GuidUdi(UmbracoCommerceConstants.UdiEntityType.Currency, price.CurrencyId);
100-
var currencyDep = new UmbracoCommerceArtifactDependency(currencyDepUdi);
96+
foreach (var price in calcConfig.Prices)
97+
{
98+
var spArtifact = new ServicePriceArtifact { Value = price.Value };
10199

102-
dependencies.Add(currencyDep);
100+
// Currency
101+
var currencyDepUdi = new GuidUdi(UmbracoCommerceConstants.UdiEntityType.Currency, price.CurrencyId);
102+
var currencyDep = new UmbracoCommerceArtifactDependency(currencyDepUdi);
103103

104-
spArtifact.CurrencyUdi = currencyDepUdi;
104+
dependencies.Add(currencyDep);
105105

106-
// Country
107-
if (price.CountryId.HasValue)
108-
{
109-
var countryDepUdi = new GuidUdi(UmbracoCommerceConstants.UdiEntityType.Country, price.CountryId.Value);
110-
var countryDep = new UmbracoCommerceArtifactDependency(countryDepUdi);
106+
spArtifact.CurrencyUdi = currencyDepUdi;
111107

112-
dependencies.Add(countryDep);
108+
// Country
109+
if (price.CountryId.HasValue)
110+
{
111+
var countryDepUdi = new GuidUdi(UmbracoCommerceConstants.UdiEntityType.Country, price.CountryId.Value);
112+
var countryDep = new UmbracoCommerceArtifactDependency(countryDepUdi);
113113

114-
spArtifact.CountryUdi = countryDepUdi;
115-
}
114+
dependencies.Add(countryDep);
116115

117-
// Region
118-
if (price.RegionId.HasValue)
119-
{
120-
var regionDepUdi = new GuidUdi(UmbracoCommerceConstants.UdiEntityType.Region, price.RegionId.Value);
121-
var regionDep = new UmbracoCommerceArtifactDependency(regionDepUdi);
116+
spArtifact.CountryUdi = countryDepUdi;
117+
}
122118

123-
dependencies.Add(regionDep);
119+
// Region
120+
if (price.RegionId.HasValue)
121+
{
122+
var regionDepUdi = new GuidUdi(UmbracoCommerceConstants.UdiEntityType.Region, price.RegionId.Value);
123+
var regionDep = new UmbracoCommerceArtifactDependency(regionDepUdi);
124+
125+
dependencies.Add(regionDep);
124126

125-
spArtifact.RegionUdi = regionDepUdi;
127+
spArtifact.RegionUdi = regionDepUdi;
128+
}
129+
130+
servicesPrices.Add(spArtifact);
126131
}
127132

128-
servicesPrices.Add(spArtifact);
133+
artifact.CalculationConfig = JObject.FromObject(new FixedRateShippingCalculationConfigArtifact
134+
{
135+
Prices = servicesPrices
136+
});
129137
}
130-
131-
artifact.CalculationConfig = JObject.FromObject(new FixedRateShippingCalculationConfigArtifact
138+
else
132139
{
133-
Prices = servicesPrices
134-
});
135-
}
136-
else
137-
{
138-
// No additional processing required
139-
artifact.CalculationConfig = JObject.FromObject(entity.CalculationConfig);
140+
// No additional processing required
141+
artifact.CalculationConfig = JObject.FromObject(entity.CalculationConfig);
142+
}
140143
}
141144

142145
// Allowed country regions

0 commit comments

Comments
 (0)