@@ -20,7 +20,7 @@ namespace Umbraco.Commerce.ProductFeeds.Core.Features.FeedGenerators.Implementat
20
20
/// <summary>
21
21
/// This is the feed generator that follows Google Merchant Center's standard.
22
22
/// </summary>
23
- public class GoogleMerchantCenterFeedService : IProductFeedGeneratorService
23
+ public class GoogleMerchantCenterFeedService : FeedGeneratorServiceBase
24
24
{
25
25
private const string GoogleXmlNamespaceUri = "http://base.google.com/ns/1.0" ;
26
26
@@ -33,29 +33,26 @@ public class GoogleMerchantCenterFeedService : IProductFeedGeneratorService
33
33
private readonly ICurrencyService _currencyService ;
34
34
private readonly IProductQueryService _productQueryService ;
35
35
private readonly IUmbracoCommerceApi _commerceApi ;
36
- private readonly ISingleValuePropertyExtractorFactory _singleValuePropertyExtractorFactory ;
37
- private readonly IMultipleValuePropertyExtractorFactory _multipleValuePropertyExtractorFactory ;
38
36
39
- public string Id => "GoogleMerchantCenter" ;
37
+ public override string Id => "GoogleMerchantCenter" ;
40
38
41
- public string DisplayName => "Google Merchant Center Feed" ;
39
+ public override string DisplayName => "Google Merchant Center Feed" ;
42
40
43
- public FeedFormat Format => FeedFormat . Xml ;
41
+ public override FeedFormat Format => FeedFormat . Xml ;
44
42
45
43
public GoogleMerchantCenterFeedService (
46
44
ILogger < GoogleMerchantCenterFeedService > logger ,
47
45
ICurrencyService currencyService ,
48
46
IProductQueryService productQueryService ,
49
47
IUmbracoCommerceApi commerceApi ,
50
- ISingleValuePropertyExtractorFactory singleValuePropertyExtractor ,
48
+ ISingleValuePropertyExtractorFactory singleValuePropertyExtractorFactory ,
51
49
IMultipleValuePropertyExtractorFactory multipleValuePropertyExtractorFactory )
50
+ : base ( singleValuePropertyExtractorFactory , multipleValuePropertyExtractorFactory )
52
51
{
53
52
_logger = logger ;
54
53
_currencyService = currencyService ;
55
54
_productQueryService = productQueryService ;
56
55
_commerceApi = commerceApi ;
57
- _singleValuePropertyExtractorFactory = singleValuePropertyExtractor ;
58
- _multipleValuePropertyExtractorFactory = multipleValuePropertyExtractorFactory ;
59
56
}
60
57
61
58
/// <summary>
@@ -64,7 +61,7 @@ public GoogleMerchantCenterFeedService(
64
61
/// <param name="feedSetting"></param>
65
62
/// <returns></returns>
66
63
/// <exception cref="IdPropertyNodeMappingNotFoundException"></exception>
67
- public async Task < XmlDocument > GenerateXmlFeedAsync ( ProductFeedSettingReadModel feedSetting )
64
+ public override async Task < XmlDocument > GenerateXmlFeedAsync ( ProductFeedSettingReadModel feedSetting )
68
65
{
69
66
ArgumentNullException . ThrowIfNull ( feedSetting , nameof ( feedSetting ) ) ;
70
67
@@ -163,13 +160,13 @@ private async Task<XmlElement> NewItemNodeAsync(ProductFeedSettingReadModel feed
163
160
// add custom properties
164
161
foreach ( PropertyAndNodeMapItem map in feedSetting . PropertyNameMappings )
165
162
{
166
- if ( _singleValuePropertyExtractorFactory . TryGetExtractor ( map . ValueExtractorId , out ISingleValuePropertyExtractor ? singleValueExtractor )
163
+ if ( SingleValuePropertyExtractorFactory . TryGetExtractor ( map . ValueExtractorId , out ISingleValuePropertyExtractor ? singleValueExtractor )
167
164
&& singleValueExtractor != null )
168
165
{
169
166
string propValue = singleValueExtractor . Extract ( variant , map . PropertyAlias , mainProduct ) ;
170
167
itemNode . AddChild ( map . NodeName , propValue , GoogleXmlNamespaceUri ) ;
171
168
}
172
- else if ( _multipleValuePropertyExtractorFactory . TryGetExtractor ( map . ValueExtractorId ! , out IMultipleValuePropertyExtractor ? multipleValueExtractor )
169
+ else if ( MultipleValuePropertyExtractorFactory . TryGetExtractor ( map . ValueExtractorId ! , out IMultipleValuePropertyExtractor ? multipleValueExtractor )
173
170
&& multipleValueExtractor != null )
174
171
{
175
172
var values = multipleValueExtractor . Extract ( variant , map . PropertyAlias , mainProduct ) . ToList ( ) ;
0 commit comments