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); }
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 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); }
/// <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 object UploadInternal(NameValueCollection parameters, byte[] fileBytes, Item accountItem) { try { var fileName = this.GetFileName(parameters); string name = Path.GetFileNameWithoutExtension(fileName); var videoToUpload = new VideoToUpload { Name = name, ShortDescription = name, StartDate = ((long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds).ToString(CultureInfo.InvariantCulture) }; var authenticator = new BrightcoveAthenticator(accountItem); var updateData = new PostData("create_video", authenticator, "video", videoToUpload); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); IRestRequest restRequest = context.CreateRequest <PostData, ResultData <string> >(EntityActionType.Create, "update_data", updateData); restRequest.AddFile(name, fileBytes, fileName); restRequest.Timeout = 86400000; // 24h var data = context.GetResponse <ResultData <string> >(restRequest).Data; if (data != null && !string.IsNullOrEmpty(data.Result)) { return(new Video { Id = data.Result, Name = name }); } return(null); } catch (Exception ex) { LogHelper.Error("Brightcove Upload is failed", this, ex); return(null); } }
protected override object Update(ExportOperation operation) { var synchronizer = MediaFrameworkContext.GetItemSynchronizer(operation.Item); if (synchronizer == null) { return(null); } var playlist = (PlayList)synchronizer.CreateEntity(operation.Item); 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("update_playlist", authenticator, "playlist", playlist); var context = new RestContext(Constants.SitecoreRestSharpService, authenticator); var data = context.Update <PostData, ResultData <PlayList> >("update_data", updateData).Data; return(data != null ? data.Result : null); }
public virtual IEnumerable <object> GetData(Item accountItem) { var authenticator = new BrightcoveAthenticator(accountItem); return(this.GetWithPaging(authenticator)); }
public PostData(string method, BrightcoveAthenticator authenticator, Dictionary <string, object> parameters = null) { this.Method = method; this.Parameters = parameters ?? new Dictionary <string, object>(); this.Parameters.Add("token", authenticator.WriteToken); }
public PostData(string method, BrightcoveAthenticator authenticator, string propertyName, object propertyValue) : this(method, authenticator, new Dictionary <string, object> { { propertyName, propertyValue } }) { }