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);
        }
Example #2
0
        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);
        }
Example #7
0
        public virtual IEnumerable <object> GetData(Item accountItem)
        {
            var authenticator = new BrightcoveAthenticator(accountItem);

            return(this.GetWithPaging(authenticator));
        }
Example #8
0
 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);
 }
Example #9
0
 public PostData(string method, BrightcoveAthenticator authenticator, string propertyName, object propertyValue)
     : this(method, authenticator, new Dictionary <string, object> {
     { propertyName, propertyValue }
 })
 {
 }