/// <summary> /// Update a label. /// </summary> /// <param name="operation"> /// The operation. /// </param> /// <returns> /// The <see cref="object"/>. /// </returns> protected override object Update(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return(null); } var authenticator = new OoyalaAthenticator(operation.AccountItem); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var lab = (Label)synchronizer.CreateEntity(operation.Item); return(context.Update <Label, Label>( "update_label", new Label { Name = lab.Name, ParentId = !string.IsNullOrEmpty(lab.ParentId) ? lab.ParentId : "root" }, new List <Parameter> { new Parameter { Type = ParameterType.UrlSegment, Name = "id", Value = lab.Id } }).Data); }
/// <summary> /// Deletes a video. /// </summary> /// <param name="operation"> /// The operation. /// </param> protected override void Delete(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return; } var authenticator = new OoyalaAthenticator(operation.AccountItem); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var video = (Video)synchronizer.CreateEntity(operation.Item); context.Delete <Video, RestEmptyType>( "delete_video", parameters: new List <Parameter> { new Parameter { Name = "embedcode", Type = ParameterType.UrlSegment, Value = video.EmbedCode } }); }
/// <summary> /// Deletes a label. /// </summary> /// <param name="operation"> /// The operation. /// </param> protected override void Delete(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return; } var authenticator = new OoyalaAthenticator(operation.AccountItem); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var label = (Label)synchronizer.CreateEntity(operation.Item); context.Delete <Label, RestEmptyType>( "delete_label", parameters: new List <Parameter> { new Parameter { Type = ParameterType.UrlSegment, Name = "id", Value = label.Id } }); }
protected override void Delete(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return; } var video = (Video)synchronizer.CreateEntity(operation.Item); var inactivatedVideo = new Video { Id = video.Id, ItemState = ItemState.INACTIVE }; var authenticator = new BrightcoveAthenticator(operation.AccountItem); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var updateData = new PostData("update_video", authenticator, "video", inactivatedVideo); var data = context.Update <PostData, ResultData <Video> >("update_data", updateData).Data; }
protected override void Delete(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return; } var playlist = (PlayList)synchronizer.CreateEntity(operation.Item); var parameters = new Dictionary <string, object> { { "playlist_id", playlist.Id }, { "cascade", "true" }, }; var authenticator = new BrightcoveAthenticator(operation.AccountItem); var updateData = new PostData("delete_playlist", authenticator, parameters); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); context.Delete <PostData, ResultData <PlayList> >("update_data", updateData); }
/// <summary> /// Creates a channel. /// </summary> /// <param name="operation"> /// The operation. /// </param> /// <returns> /// The <see cref="object"/>. /// </returns> protected override object Create(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return(null); } var authenticator = new OoyalaAthenticator(operation.AccountItem); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var channel = (Channel)synchronizer.CreateEntity(operation.Item); channel.EmbedCode = null; channel.CreatedAt = null; channel.UpdatedAt = null; channel.Duration = null; channel.PostProcessingStatus = null; channel.Metadata = null; channel.PreviewImageUrl = null; channel.Status = null; var createdChannel = context.Create <Channel, Channel>("create_channel", channel).Data; this.UpdateLineup(operation, createdChannel.EmbedCode); this.UpdateLabels(operation, createdChannel.EmbedCode); this.UpdatePlayer(operation, createdChannel.EmbedCode); this.UpdateMetadata(operation, createdChannel.EmbedCode); return(createdChannel); }
/// <summary> /// Update /// </summary> /// <param name="operation"></param> /// <returns></returns> protected override object Update(ExportOperation operation) { IItemSynchronizer itemSynchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (itemSynchronizer == null) { return(null); } var video = (Video)itemSynchronizer.CreateEntity(operation.Item); if (video.CustomFields != null && video.CustomFields.Count == 0) { video.CustomFields = null; } var authenticator = new BrightcoveAuthenticator(operation.AccountItem); var result = new VideoProxy(authenticator).Patch(video); if (result == null || result.Id == null) { return(null); } if (result.CustomFields == null) { result.CustomFields = video.CustomFields; } return(result); }
protected virtual void InitPlayersList(Item item) { IPlayerMarkupGenerator generator = MediaFrameworkContext.GetPlayerMarkupGenerator(item); if (generator == null) { return; } Item account = AccountManager.GetAccountItemForDescendant(item); if (account == null) { return; } var players = AccountManager.GetPlayers(account); this.PlayersList.Controls.Clear(); foreach (var playerItem in players) { this.PlayersList.Controls.Add(new ListItem { ID = Control.GetUniqueID("ListItem"), Selected = this.PlayerId == playerItem.ID.ToShortID(), Header = playerItem.DisplayName, Value = playerItem.ID.ToShortID().ToString() }); } Context.ClientPage.ClientResponse.Refresh(this.PlayersList); }
protected override List <ID> GetReference(PlayList entity, Item accountItem) { if (entity.PlayListSearch == null || entity.PlayListSearch.FilterTags == null || entity.PlayListSearch.FilterTags.Count == 0) { return(new List <ID>(0)); } Expression <Func <TagSearchResult, bool> > ancestorFilter = ContentSearchUtil.GetAncestorFilter <TagSearchResult>(accountItem, TemplateIDs.Tag); Expression <Func <TagSearchResult, bool> > second = Enumerable.Aggregate <string, Expression <Func <TagSearchResult, bool> > >((IEnumerable <string>)entity.PlayListSearch.FilterTags, PredicateBuilder.False <TagSearchResult>(), (Func <Expression <Func <TagSearchResult, bool> >, string, Expression <Func <TagSearchResult, bool> > >)((current, tmp) => PredicateBuilder.Or <TagSearchResult>(current, (Expression <Func <TagSearchResult, bool> >)(i => i.TagName == tmp)))); List <TagSearchResult> all = ContentSearchUtil.FindAll <TagSearchResult>(Configuration.Settings.IndexName, PredicateBuilder.And <TagSearchResult>(ancestorFilter, second)); if (all.Count < entity.PlayListSearch.FilterTags.Count) { IItemSynchronizer itemSynchronizer = MediaFrameworkContext.GetItemSynchronizer(typeof(Entities.Tag)); if (itemSynchronizer != null) { foreach (string str in entity.PlayListSearch.FilterTags) { string tagName = str; if (!Enumerable.Any <TagSearchResult>((IEnumerable <TagSearchResult>)all, (Func <TagSearchResult, bool>)(i => i.Name == tagName))) { TagSearchResult tagSearchResult = itemSynchronizer.Fallback((object)new Entities.Tag() { Name = tagName }, accountItem) as TagSearchResult; if (tagSearchResult != null) { all.Add(tagSearchResult); } } } } } return(Enumerable.ToList <ID>(Enumerable.Select <TagSearchResult, ID>((IEnumerable <TagSearchResult>)all, (Func <TagSearchResult, ID>)(i => i.ItemId)))); }
protected override object Update(ExportOperation operation) { var itemSynchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (itemSynchronizer == null) { return(null); } var playList = (PlayList)itemSynchronizer.CreateEntity(operation.Item); playList.ReferenceId = null; //Video ids used only for EXPLICIT playlist. //In other case will be used playlistsearch if (playList.PlaylistType == PlaylistType.EXPLICIT.ToString()) { playList.PlayListSearch = null; } else { playList.VideoIds = null; } var authenticator = new BrightcoveAuthenticator(operation.AccountItem); var data = new PlaylistProxy(authenticator).Patch(playList); if (data == null) { return(null); } return(data); }
/// <summary> /// Updates a player. /// </summary> /// <param name="operation"> /// The operation. /// </param> /// <returns> /// The <see cref="object"/>. /// </returns> protected override object Update(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return(null); } var authenticator = new OoyalaAthenticator(operation.AccountItem); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var player = (Player)synchronizer.CreateEntity(operation.Item); string playerId = player.Id; player.Id = null; return(context.Update <Player, Player>( "update_player", player, new List <Parameter> { new Parameter { Type = ParameterType.UrlSegment, Name = "id", Value = playerId } }).Data); }
protected virtual List <PageEventData> GetPageEvents(VisitData visit) { return(new List <PageEventData>( visit.Pages .Where(page => page.PageEvents != null) .SelectMany(page => page.PageEvents) .Where(pageEvent => MediaFrameworkContext.IsMediaEvent(pageEvent.PageEventDefinitionId)))); }
protected override object Create(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return(null); } var playlist = (PlayList)synchronizer.CreateEntity(operation.Item); playlist.Id = null; playlist.ReferenceId = null; playlist.ThumbnailUrl = null; //Video ids used only for EXPLICIT playlist. //In other case will be used filter tags & tag inclusion if (playlist.PlaylistType == PlaylistType.EXPLICIT.ToString()) { playlist.FilterTags = null; playlist.TagInclusion = null; } else { playlist.VideoIds = null; } var authenticator = new BrightcoveAthenticator(operation.AccountItem); var updateData = new PostData("create_playlist", authenticator, "playlist", playlist); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var data = context.Create <PostData, ResultData <string> >("update_data", updateData).Data; if (data != null && !string.IsNullOrEmpty(data.Result)) { //we could not to use existing playlist object because it does not contain all data var playlistData = context.Read <PlayList>("read_playlist_by_id", new List <Parameter> { new Parameter { Type = ParameterType.UrlSegment, Name = "playlist_id", Value = data.Result } }).Data; if (playlistData == null) { playlist.Id = data.Result; return(playlist); } return(playlistData); } return(null); }
public void MigrateItem(Item item) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(item); if (synchronizer != null) { this.Helper.RecreateItem(item, true); } }
public virtual void Execute() { IUploadExecuter executer = MediaFrameworkContext.GetUploadExecuter(ID.Parse(this.properties[Constants.Upload.AccountTemplateId])); if (executer != null) { executer.Upload(this.properties, this.bytes); } }
public virtual IItemSynchronizer GetItemSynchronizer(Item mediaItem) { Assert.ArgumentNotNull(mediaItem, "mediaItem"); var synchronizer = MediaFrameworkContext.GetItemSynchronizer(mediaItem); if (synchronizer == null) { LogHelper.Warn("Item synchronizer could not be resolved. MediaItem:" + mediaItem.Uri, this); } return(synchronizer); }
public virtual IPlayerMarkupGenerator GetPlayerMarkupGenerator(Item mediaItem) { Assert.ArgumentNotNull(mediaItem, "mediaItem"); IPlayerMarkupGenerator generator = MediaFrameworkContext.GetPlayerMarkupGenerator(mediaItem); if (generator == null) { LogHelper.Warn("Player markup generator could not be resolved. MediaItem:" + mediaItem.Uri, this); } return(generator); }
/// <summary> /// Ingests items /// </summary> /// <param name="args"> /// The args. /// </param> public override void Process(MediaCleanupItemArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.Item, "args.Item"); ICleanupLinksExecuter executer = MediaFrameworkContext.GetCleanupLinksExecuter(args.Item); if (executer != null) { executer.CleanupLinks(args.Item); } }
protected override void Delete(ExportOperation operation) { var itemSynchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (itemSynchronizer == null) { return; } var authenticator = new BrightcoveAuthenticator(operation.AccountItem); new PlaylistProxy(authenticator).Delete(((Asset)itemSynchronizer.CreateEntity(operation.Item)).Id); }
public virtual ScopeExecuteConfiguration GetExecuteConfiguration(string name) { Assert.ArgumentNotNullOrEmpty(name, "name"); ScopeExecuteConfiguration result = MediaFrameworkContext.GetScopeExecuteConfiguration(name); if (result == null) { LogHelper.Warn("Execute configuration could not be resolved. Name:" + name, this); } return(result); }
public void Process(GetContentEditorWarningsArgs args) { Assert.ArgumentNotNull(args, "args"); if (args.Item != null) { IExportExecuter exportExecuter = MediaFrameworkContext.GetExportExecuter(args.Item); if (exportExecuter != null && exportExecuter.IsNew(args.Item)) { args.Add(Translate.Text(Translations.NotExportedWarningTitle), Translate.Text(Translations.NotExportedWarningText)); } } }
protected override List <ID> GetReference(Channel 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)); List <string> embedCodes = context.Read <List <string> >("read_channel_lineup", parameters).Data; if (embedCodes == null) { return(null); } Expression <Func <VideoSearchResult, bool> > expression = ContentSearchUtil.GetAncestorFilter <VideoSearchResult>(accountItem, TemplateIDs.Video); var embedCodesExp = embedCodes.Aggregate(PredicateBuilder.False <VideoSearchResult>(), (current, tmp) => current.Or(i => i.EmbedCode == tmp.Replace('-', ' '))); List <VideoSearchResult> searchResults = ContentSearchUtil.FindAll(Constants.IndexName, expression.And(embedCodesExp)); //fallback if (searchResults.Count < embedCodes.Count) { IItemSynchronizer synchronizer = MediaFrameworkContext.GetItemSynchronizer(typeof(Video)); if (synchronizer != null) { foreach (string embedCode in embedCodes) { if (searchResults.Any(i => i.EmbedCode == embedCode)) { continue; } Video video = new Video { EmbedCode = embedCode }; var videoIndex = synchronizer.Fallback(video, accountItem) as VideoSearchResult; if (videoIndex != null) { searchResults.Add(videoIndex); } } } } return(searchResults.Select(i => i.ItemId).ToList()); }
public void Process(ClientPipelineArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.Parameters, "args.Parameters"); if (args.Parameters["copy"] == "1" || !MediaFrameworkContext.IsExportAllowed(args.Parameters["database"])) { return; } Item item = this.GetItem(args); item.ExportMove(); }
public static bool ExportDelete(this Item item) { if (item == null) { return(false); } IExportExecuter executer = MediaFrameworkContext.GetExportExecuter(item); if (executer != null && !executer.IsNew(item)) { ExportQueueManager.Add(new ExportOperation(item, ExportOperationType.Delete)); return(true); } return(false); }
public static bool ExportUpdate(this Item item, SaveArgs.SaveItem saveItem = null) { if (item == null) { return(false); } IExportExecuter executer = MediaFrameworkContext.GetExportExecuter(item); if (executer != null && !item.ExportCreate() && (saveItem == null || executer.NeedToUpdate(saveItem))) { ExportQueueManager.Add(new ExportOperation(item, ExportOperationType.Update)); return(true); } return(false); }
public static bool ExportCreate(this Item item) { if (item == null) { return(false); } IExportExecuter executer = MediaFrameworkContext.GetExportExecuter(item); if (executer != null && executer.IsNew(item)) { executer.Export(new ExportOperation(item, ExportOperationType.Create)); return(true); } return(false); }
/// <summary> /// Update /// </summary> /// <param name="operation"></param> /// <returns></returns> protected override object Update(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return(null); } var video = (Video)synchronizer.CreateEntity(operation.Item); video.ThumbnailUrl = null; video.CreationDate = null; video.VideoStillURL = null; video.PublishedDate = null; video.PlaysTrailingWeek = null; video.PlaysTotal = null; video.LastModifiedDate = null; video.Length = null; if (video.CustomFields != null && video.CustomFields.Count == 0) { video.CustomFields = null; } var authenticator = new BrightcoveAthenticator(operation.AccountItem); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var updateData = new PostData("update_video", authenticator, "video", video); var data = context.Update <PostData, ResultData <Video> >("update_data", updateData).Data; if (data != null && data.Result != null) { if (data.Result.CustomFields == null) { data.Result.CustomFields = video.CustomFields; } return(data.Result); } return(null); }
protected override List <ID> GetReference(Asset entity, Item accountItem) { List <Label> labels = this.GetLabels(entity, accountItem); if (labels == null) { return(null); } if (labels.Count == 0) { return(new List <ID>(0)); } string[] labelIds = labels.Select(i => i.Id).ToArray(); var expression = ContentSearchUtil.GetAncestorFilter <LabelSearchResult>(accountItem, TemplateIDs.Label); var idExp = labelIds.Aggregate(PredicateBuilder.False <LabelSearchResult>(), (current, tmp) => current.Or(i => i.Id == tmp)); List <LabelSearchResult> searchResults = ContentSearchUtil.FindAll(Constants.IndexName, expression.And(idExp)); //fallback if (searchResults.Count < labelIds.Length) { IItemSynchronizer synchronizer = MediaFrameworkContext.GetItemSynchronizer(typeof(Label)); if (synchronizer != null) { foreach (Label label in labels) { if (searchResults.Any(i => i.Id == label.Id)) { continue; } var labelIndex = synchronizer.Fallback(label, accountItem) as LabelSearchResult; if (labelIndex != null) { searchResults.Add(labelIndex); } } } } return(searchResults.Select(i => i.ItemId).ToList()); }
protected override void Delete(ExportOperation operation) { IItemSynchronizer itemSynchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (itemSynchronizer == null) { return; } var video1 = (Video)itemSynchronizer.CreateEntity(operation.Item); var video2 = new Video(); video2.Id = video1.Id; video2.ItemState = ItemState.INACTIVE; Video video3 = video2; var authenticator = new BrightcoveAuthenticator(operation.AccountItem); new VideoProxy(authenticator).Patch(video3); }
/// <summary> /// Processes determining the event trigger. /// </summary> /// <param name="args"> /// The args. /// </param> public override void Process(PlayerEventArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.Properties, "args.Parameters"); IEventTrigger trigger = MediaFrameworkContext.GetEventTrigger(args.Properties.Template); if (trigger != null) { args.Trigger = trigger; } else { LogHelper.Warn("Player event trigger couldn't be determine for the player.", this); args.AbortPipeline(); } }