Skip to content

Commit 8699c01

Browse files
authored
Merge pull request #186 from umbraco/bugfix/algolia-umbraco-context
Bugfix/algolia umbraco context
2 parents fb0bf0d + 317b15e commit 8699c01

File tree

4 files changed

+19
-5
lines changed

4 files changed

+19
-5
lines changed

src/Umbraco.Cms.Integrations.Search.Algolia/Builders/ContentRecordBuilder.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Umbraco.Cms.Core.Models;
22
using Umbraco.Cms.Core.Routing;
33
using Umbraco.Cms.Core.Services;
4+
using Umbraco.Cms.Core.Web;
45
using Umbraco.Cms.Integrations.Search.Algolia.Models;
56
using Umbraco.Cms.Integrations.Search.Algolia.Services;
67
using Umbraco.Extensions;
@@ -19,7 +20,12 @@ public class ContentRecordBuilder
1920

2021
private readonly IRecordBuilderFactory _recordBuilderFactory;
2122

22-
public ContentRecordBuilder(IUserService userService, IPublishedUrlProvider urlProvider, IAlgoliaSearchPropertyIndexValueFactory algoliaSearchPropertyIndexValueFactory, IRecordBuilderFactory recordBuilderFactory)
23+
private readonly IUmbracoContextFactory _umbracoContextFactory;
24+
25+
public ContentRecordBuilder(IUserService userService, IPublishedUrlProvider urlProvider,
26+
IAlgoliaSearchPropertyIndexValueFactory algoliaSearchPropertyIndexValueFactory,
27+
IRecordBuilderFactory recordBuilderFactory,
28+
IUmbracoContextFactory umbracoContextFactory)
2329
{
2430
_userService = userService;
2531

@@ -28,10 +34,14 @@ public ContentRecordBuilder(IUserService userService, IPublishedUrlProvider urlP
2834
_algoliaSearchPropertyIndexValueFactory = algoliaSearchPropertyIndexValueFactory;
2935

3036
_recordBuilderFactory = recordBuilderFactory;
37+
38+
_umbracoContextFactory = umbracoContextFactory;
3139
}
3240

3341
public ContentRecordBuilder BuildFromContent(IContent content, Func<IProperty, bool> filter = null)
3442
{
43+
using var contextReference = _umbracoContextFactory.EnsureUmbracoContext();
44+
3545
_record.ObjectID = content.Key.ToString();
3646

3747
var creator = _userService.GetProfileById(content.CreatorId);

src/Umbraco.Cms.Integrations.Search.Algolia/Controllers/SearchController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public async Task<IActionResult> BuildIndex([FromBody] IndexConfiguration indexC
136136

137137
foreach (var contentItem in contentItems.Where(p => !p.Trashed))
138138
{
139-
var record = new ContentRecordBuilder(_userService, _urlProvider, _algoliaSearchPropertyIndexValueFactory, _recordBuilderFactory)
139+
var record = new ContentRecordBuilder(_userService, _urlProvider, _algoliaSearchPropertyIndexValueFactory, _recordBuilderFactory, _umbracoContextFactory)
140140
.BuildFromContent(contentItem, (p) => contentDataItem.Properties.Any(q => q.Alias == p.Alias))
141141
.Build();
142142

src/Umbraco.Cms.Integrations.Search.Algolia/Handlers/AlgoliaContentCacheRefresherHandler.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public class AlgoliaContentCacheRefresherHandler : INotificationAsyncHandler<Con
3737

3838
private readonly IRecordBuilderFactory _recordBuilderFactory;
3939

40+
private readonly IUmbracoContextFactory _umbracoContextFactory;
41+
4042
public AlgoliaContentCacheRefresherHandler(
4143
IServerRoleAccessor serverRoleAccessor,
4244
ILogger<AlgoliaContentCacheRefresherHandler> logger,
@@ -46,7 +48,8 @@ public AlgoliaContentCacheRefresherHandler(
4648
IUserService userService,
4749
IPublishedUrlProvider urlProvider,
4850
IAlgoliaSearchPropertyIndexValueFactory algoliaSearchPropertyIndexValueFactory,
49-
IRecordBuilderFactory recordBuilderFactory)
51+
IRecordBuilderFactory recordBuilderFactory,
52+
IUmbracoContextFactory umbracoContextFactory)
5053
{
5154
_serverRoleAccessor = serverRoleAccessor;
5255
_contentService = contentService;
@@ -57,6 +60,7 @@ public AlgoliaContentCacheRefresherHandler(
5760
_urlProvider = urlProvider;
5861
_algoliaSearchPropertyIndexValueFactory = algoliaSearchPropertyIndexValueFactory;
5962
_recordBuilderFactory = recordBuilderFactory;
63+
_umbracoContextFactory = umbracoContextFactory;
6064
}
6165

6266
public async Task HandleAsync(ContentCacheRefresherNotification notification, CancellationToken cancellationToken)
@@ -103,7 +107,7 @@ protected async Task RebuildIndex(IEnumerable<IContent> entities)
103107
.FirstOrDefault(p => p.ContentType.Alias == entity.ContentType.Alias);
104108
if (indexConfiguration == null || indexConfiguration.ContentType.Alias != entity.ContentType.Alias) continue;
105109

106-
var record = new ContentRecordBuilder(_userService, _urlProvider, _algoliaSearchPropertyIndexValueFactory, _recordBuilderFactory)
110+
var record = new ContentRecordBuilder(_userService, _urlProvider, _algoliaSearchPropertyIndexValueFactory, _recordBuilderFactory, _umbracoContextFactory)
107111
.BuildFromContent(entity, (p) => indexConfiguration.Properties.Any(q => q.Alias == p.Alias))
108112
.Build();
109113

src/Umbraco.Cms.Integrations.Search.Algolia/Umbraco.Cms.Integrations.Search.Algolia.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<PackageIconUrl></PackageIconUrl>
1414
<PackageProjectUrl>https://github.com/umbraco/Umbraco.Cms.Integrations/tree/main/src/Umbraco.Cms.Integrations.Search.Algolia</PackageProjectUrl>
1515
<RepositoryUrl>https://github.com/umbraco/Umbraco.Cms.Integrations</RepositoryUrl>
16-
<Version>2.1.3</Version>
16+
<Version>2.1.4</Version>
1717
<Authors>Umbraco HQ</Authors>
1818
<Company>Umbraco</Company>
1919
<PackageTags>Umbraco;Umbraco-Marketplace</PackageTags>

0 commit comments

Comments
 (0)