Skip to content

Commit fe6a87f

Browse files
committed
added extension method on ExamineManager to reindex nodes by id or IPublishedContent
1 parent 046231d commit fe6a87f

File tree

3 files changed

+85
-14
lines changed

3 files changed

+85
-14
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using Examine;
2+
using Our.Umbraco.Look.Extensions;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using umbraco.cms.businesslogic.web;
6+
using Umbraco.Core.Models;
7+
using Umbraco.Web;
8+
using UmbracoExamine;
9+
using Media = umbraco.cms.businesslogic.media.Media;
10+
using Member = umbraco.cms.businesslogic.member.Member;
11+
12+
namespace Our.Umbraco.Look // NOTE: namespaced pushed down to root as it's in the public API
13+
{
14+
/// <summary>
15+
/// Look extension method for ExmaineManager to reindex nodes by id or IPublishedContent collections
16+
/// </summary>
17+
public static partial class ExamineManagerExtensions
18+
{
19+
public static void ReIndex(this ExamineManager examineManager, IEnumerable<int> ids)
20+
{
21+
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
22+
23+
var nodes = ids
24+
.Select(x => umbracoHelper.GetIPublishedContent(x))
25+
.Where(x => x != null);
26+
27+
examineManager.ReIndex(nodes);
28+
}
29+
30+
public static void ReIndex(this ExamineManager examineManager, IEnumerable<IPublishedContent> nodes)
31+
{
32+
var examineIndexers = examineManager
33+
.IndexProviderCollection
34+
.Select(x => x as BaseUmbracoIndexer) // UmbracoContentIndexer, UmbracoMemberIndexer
35+
.Where(x => x != null);
36+
37+
foreach (var examineIndexer in examineIndexers)
38+
{
39+
foreach(var node in nodes)
40+
{
41+
switch (node.ItemType)
42+
{
43+
case PublishedItemType.Content:
44+
examineIndexer.ReIndexNode(new Document(node.Id).ToXDocument(false).Root, IndexTypes.Content);
45+
break;
46+
47+
case PublishedItemType.Media:
48+
examineIndexer.ReIndexNode(new Media(node.Id).ToXDocument(false).Root, IndexTypes.Media);
49+
break;
50+
51+
case PublishedItemType.Member:
52+
examineIndexer.ReIndexNode(new Member(node.Id).ToXDocument(false).Root, IndexTypes.Member);
53+
break;
54+
}
55+
}
56+
}
57+
58+
var lookIndexers = examineManager
59+
.IndexProviderCollection
60+
.Select(x => x as LookIndexer)
61+
.Where(x => x != null);
62+
63+
foreach (var lookIndexer in lookIndexers)
64+
{
65+
lookIndexer.ReIndex(nodes);
66+
}
67+
68+
}
69+
}
70+
}

src/Our.Umbraco.Look/LookIndexer.cs

+14-14
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,20 @@ protected override void PerformIndexAll(string type)
8080
{
8181
}
8282

83-
///// <summary>
84-
///// Index all Umbraco nodes with the supplied Ids (can be content, media, members, or a mixture)
85-
///// </summary>
86-
///// <param name="ids"></param>
87-
//public void ReIndex(IEnumerable<int> ids)
88-
//{
89-
// var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
90-
91-
// var nodes = ids
92-
// .Select(x => umbracoHelper.GetIPublishedContent(x))
93-
// .Where(x => x != null);
94-
95-
// this.ReIndex(nodes);
96-
//}
83+
/// <summary>
84+
/// Index all Umbraco nodes with the supplied Ids (can be content, media, members, or a mixture)
85+
/// </summary>
86+
/// <param name="ids"></param>
87+
public void ReIndex(IEnumerable<int> ids)
88+
{
89+
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
90+
91+
var nodes = ids
92+
.Select(x => umbracoHelper.GetIPublishedContent(x))
93+
.Where(x => x != null);
94+
95+
this.ReIndex(nodes);
96+
}
9797

9898
/// <summary>
9999
/// Index the supplied nodes (can be content, media, members, or a mixture)

src/Our.Umbraco.Look/Our.Umbraco.Look.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@
247247
</ItemGroup>
248248
<ItemGroup>
249249
<Compile Include="Exceptions\ParsingException.cs" />
250+
<Compile Include="Extensions\ExamineManagerExtensions\ReIndex.cs" />
250251
<Compile Include="Extensions\IPublishedContentExtensions\GetDetachedDescendant.cs" />
251252
<Compile Include="Extensions\IPublishedContentExtensions\YieldDetachedProperties.cs" />
252253
<Compile Include="Extensions\IPublishedContentExtensions\YieldDetachedDescendants.cs" />

0 commit comments

Comments
 (0)