using Digizuite.Models;
using Digizuite.OptimizelySystem.Collections.Generic;
using EPiServer.Find.Cms;
using EPiServer.ServiceLocation;
using EPiServer.Web;
using System.Globalization;
using System.Linq;
using Digizuite.Episerver;
using Digizuite.Episerver.Helpers.Internal;
using EPiServer.Core;
namespace AlloyDevSiteNet6EpiserverSite.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 languagesassets = Client.Languages.Select(lang => new CultureInfo(lang.LanguageCode)).ToList(GetAllAssetIds();
if
var facets = new List<FacetRequest>((assets != null)
{
newvar FacetRequest()searchResult {
FacetMode = FacetMode.QueryOnly,= assets.Select(asset => ConversionHelper.GetReferenceFromAssetId(asset.AssetId)).ToList();
var languages Recursive = true,
SearchKey = "assetType",
= Client.Languages.Select(lang => new CultureInfo(lang.LanguageShort)).ToList();
Values =return new List<string>{"image"}List<ReindexTarget>()
}{
}; new ReindexTarget
var assets = Client.GetAllContentReferences(facets).GetAwaiter().GetResult(); {
return new List<ReindexTarget>() { ContentLinks = searchResult,
new ReindexTarget Languages = languages,
{ SiteDefinition ContentLinks = assets,SiteDefinition.Empty
Languages}
= languages, };
SiteDefinition = SiteDefinition.Empty }
} }return null;
}
}
public ContentReference Root
{
get
{
return DigizuiteContentProvider.GetEntryPoint();
}
}
}
}
|