DAM for Episerver Optimizely works well with Episerver Optimizely Find. To get the most out of it you might want to even add the individual Out of the box, no assets from Digizuite will be indexed. Adding Digizuite assets to the index. This , can be done by adding a ReindexInformation provider as shown below. In the example below .
...
we use the IDigizuiteClientclass to access assets from Digizuite. The method Task<IEnumerable<ContentReference>> GetAllContentReferences(List<FacetRequest> facets = null), is used for searhing assets from digizuite, which then can be added to the index. Here we search for all assets of assettype “image” and add them to the index. If you dont send any parameters to GetAllContentReferences, then you get all assets that has been added to the Optimizely channel in Digizuite. You can read more about how to add filter to the search https://digizuite.atlassian.net/wiki/spaces/DD/pages/3521839147.
ReindexInformation Provider
using
...
Digizuite.
...
Models;
using
...
Digizuite.
...
Optimizely;
using
...
EPiServer.Find.Cms;
using EPiServer.
...
ServiceLocation;
using EPiServer.
...
Web;
using
...
System.
...
Globalization;
namespace
...
AlloyDevSiteNet6.Business
{
[ServiceConfiguration(typeof(IReindexInformation), Lifecycle = ServiceInstanceScope.Singleton)]
public class DigizuiteReindexInformation : IReindexInformation
{
public
...
IDigizuiteClient
...
Client { get; set; }
...
public DigizuiteReindexInformation(IDigizuiteClient client)
{
this.Client
...
=
...
client;
...
}
public
...
IEnumerable<ReindexTarget> ReindexTargets
{
get
{
...
var languages = Client.Languages.Select(lang => new CultureInfo(lang.LanguageCode)).ToList();
...
var facets = new List<FacetRequest>()
...
{
...
...
...
...
...
new FacetRequest()
...
{
...
FacetMode = FacetMode.QueryOnly,
Recursive = true,
...
...
...
...
...
SearchKey =
...
"assetType",
...
...
...
Values =
...
new
...
List<string>{"image"}
...
...
}
...
...
};
...
...
...
...
var assets
...
= Client.GetAllContentReferences(facets).GetAwaiter().GetResult();
return new List<ReindexTarget>()
{
new ReindexTarget
{
ContentLinks =
...
assets,
Languages = languages,
SiteDefinition = SiteDefinition.Empty
}
};
}
}
public
...
ContentReference Root
{
get
{
...
...
...
...
return
...
DigizuiteContentProvider.GetEntryPoint();
}
}
}
}