private bool IsItemReferencedFromEnabledContent(Item item, EnterspeedSitecoreConfiguration configuration) { GetLinksStrategy linksStrategy = _linkStrategyFactory.Resolve(item); var strategyContextArgs = new StrategyContextArgs(item); linksStrategy.ProcessReferrers(strategyContextArgs); if (strategyContextArgs.Result != null && strategyContextArgs.Result.Any()) { foreach (ItemLink itemLink in strategyContextArgs.Result) { Item sourceItem = itemLink?.GetSourceItem(); if (sourceItem == null) { continue; } EnterspeedSiteInfo site = configuration.GetSite(sourceItem); if (site != null) { // This rendering is referenced on content from an enabled site return(true); } } } return(false); }
public string GetItemUrl(Item item, bool enableLanguageEmbedding = false) { if (item == null) { return(null); } EnterspeedSitecoreConfiguration configuration = _enterspeedConfigurationService.GetConfiguration(); EnterspeedSiteInfo siteInfo = configuration.GetSite(item); var urlBuilderOptions = new ItemUrlBuilderOptions { SiteResolving = true, AlwaysIncludeServerUrl = true, LowercaseUrls = true, LanguageEmbedding = enableLanguageEmbedding ? LanguageEmbedding.Always : LanguageEmbedding.Never }; if (siteInfo != null) { SiteContext siteContext = _siteContextFactory.GetSiteContext(siteInfo.Name); urlBuilderOptions.Site = siteContext; } return(_linkManager.GetItemUrl(item, urlBuilderOptions)); }
private void HandleContentItem(Item item, EnterspeedSitecoreConfiguration configuration, bool itemIsDeleted, bool itemIsPublished) { try { if (item == null) { return; } // Skip, if the item published is not a content item if (!item.IsContentItem()) { return; } EnterspeedSiteInfo siteOfItem = configuration.GetSite(item); if (siteOfItem == null) { // If no enabled site was found for this item, skip it return; } SitecoreContentEntity sitecoreContentEntity = _sitecoreContentEntityModelMapper.Map(item); if (sitecoreContentEntity == null) { return; } if (itemIsDeleted) { string id = _identityService.GetId(item); _loggingService.Info($"Beginning to delete content entity ({id})."); Response deleteResponse = _enterspeedIngestService.Delete(id); if (!deleteResponse.Success) { _loggingService.Warn($"Failed deleting content entity ({id}). Message: {deleteResponse.Message}", deleteResponse.Exception); } else { _loggingService.Debug($"Successfully deleting content entity ({id})"); } return; } if (itemIsPublished) { string id = _identityService.GetId(item); _loggingService.Info($"Beginning to ingest content entity ({id})."); Response saveResponse = _enterspeedIngestService.Save(sitecoreContentEntity); if (!saveResponse.Success) { _loggingService.Warn($"Failed ingesting content entity ({id}). Message: {saveResponse.Message}", saveResponse.Exception); } else { _loggingService.Debug($"Successfully ingested content entity ({id})"); } } } catch (Exception exception) { Debug.WriteLine(exception.ToString()); } }