protected override List <ID> GetReference(Asset entity, Item accountItem) { var parameters = new List <Parameter> { new Parameter() { Name = "embedcode", Type = ParameterType.UrlSegment, Value = entity.EmbedCode } }; var context = new RestContext(Constants.SitecoreRestSharpService, new OoyalaAthenticator(accountItem)); var referencedPlayer = context.Read <ReferencedPlayer>("read_asset_player", parameters).Data; if (referencedPlayer == null) { return(new List <ID>(0)); } var playerIndex = ContentSearchUtil.FindOne <PlayerSearchResult>(Constants.IndexName, i => i.Paths.Contains(accountItem.ID) && i.TemplateId == TemplateIDs.Player && i.Id == referencedPlayer.ID); if (playerIndex == null) { IItemSynchronizer synchronizer = MediaFrameworkContext.GetItemSynchronizer(typeof(Player)); if (synchronizer != null) { Player player = new Player { Id = referencedPlayer.ID }; playerIndex = synchronizer.Fallback(player, accountItem) as PlayerSearchResult; } } return(playerIndex != null ? new List <ID> { playerIndex.ItemId } : new List <ID>(0)); }
protected virtual Item GetParentItem(Label label, Item accountItem) { if (string.IsNullOrEmpty(label.ParentId)) { return(accountItem.Children["Labels"]); } var expression = ContentSearchUtil.GetAncestorFilter <LabelSearchResult>(accountItem, TemplateIDs.Label); expression.And(i => i.Id == label.ParentId); LabelSearchResult searchResults = ContentSearchUtil.FindOne(Constants.IndexName, expression.And(i => i.Id == label.ParentId)); if (searchResults != null) { Item item = searchResults.GetItem(); if (item != null) { return(item); } } return(accountItem.Axes.SelectSingleItem(string.Format("./Labels//*[@@templateid='{0}' and @Id='{1}']", TemplateIDs.Label, label.ParentId))); }
protected virtual TSearchResult GetSearchResult <TSearchResult>(string indexName, Item accountItem, Expression <Func <TSearchResult, bool> > selector) where TSearchResult : MediaServiceSearchResult, new() { Expression <Func <TSearchResult, bool> > predicate = ContentSearchUtil.GetAncestorFilter <TSearchResult>(accountItem); return(ContentSearchUtil.FindOne <TSearchResult>(indexName, predicate.And(selector))); }
public static TSearchResult GetSearchResultForAncesterFilter <TSearchResult>(string indexName, Item ancesterItem, Expression <Func <TSearchResult, bool> > selector) where TSearchResult : MediaServiceSearchResult, new() { Expression <Func <TSearchResult, bool> > ancestorFilter = ContentSearchUtil.GetAncestorFilter <TSearchResult>(ancesterItem, (List <ID>)null); return(ContentSearchUtil.FindOne <TSearchResult>(indexName, PredicateBuilder.And <TSearchResult>(ancestorFilter, selector))); }