Exemplo n.º 1
0
        public void ShouldAppendContentNetworkPrefixIfRefIsNotAValidAbsoluteUri()
        {
            DataServiceTranslator.ContentNetworkPrefix = "http://prefix/";

            var resource = new Resource {
                Ref = "RefResource", ResourceType = "LiveSmoothStream"
            };

            var videoItem = new VideoItem
            {
                Id        = new Uri("http://uri"),
                Title     = "VideoTitle",
                Duration  = 10,
                Resources = new ResourceCollection {
                    resource
                }
            };

            var items = new ItemCollection {
                videoItem
            };

            var container = new Container {
                Items = items
            };

            List <Asset> assets = DataServiceTranslator.ConvertToAssets(container);

            Assert.AreEqual(string.Concat(DataServiceTranslator.ContentNetworkPrefix, videoItem.Resources[0].Ref), assets[0].Source.ToString());
        }
Exemplo n.º 2
0
        public void ShouldNotAppendContentNetworkPrefixIfRexIsAValidAbsoluteUri()
        {
            DataServiceTranslator.ContentNetworkPrefix = "http://prefix/";

            var resource = new Resource {
                Ref = "http://www.microsoft.com/test.wmv", ResourceType = "Master"
            };

            var videoItem = new VideoItem
            {
                Id        = new Uri("http://uri"),
                Title     = "VideoTitle",
                Duration  = 10,
                Resources = new ResourceCollection {
                    resource
                }
            };

            var items = new ItemCollection {
                videoItem
            };

            var container = new Container {
                Items = items
            };

            List <Asset> assets = DataServiceTranslator.ConvertToAssets(container);

            Assert.AreEqual("http://www.microsoft.com/test.wmv", assets[0].Source.ToString());
        }
        /// <summary>
        /// Loads the assets asynchronously.
        /// </summary>
        /// <param name="filter">The filter.</param>
        /// <param name="maxNumberOfItems">The max number of items.</param>
        public void LoadAssetsAsync(string filter, int maxNumberOfItems)
        {
            AssetsDataServiceClient client = this.CreateAssetsDataServiceClient();

            client.LoadLibraryFilterCompleted += (sender, args) =>
            {
                if (args.Error != null)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, args.Error);

                    if (args.Error.GetType() == typeof(Exception))
                    {
                        throw args.Error;
                    }

                    return;
                }

                try
                {
                    List <Asset> assets = DataServiceTranslator.ConvertToAssets(args.Result);
                    this.OnLoadAssetsCompleted(new DataEventArgs <List <Asset> >(assets));
                }
                catch (Exception e)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, e);
                    throw;
                }
            };

            client.LoadLibraryFilterAsync(filter, maxNumberOfItems);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Loads the media bin assets asynchronously.
        /// </summary>
        /// <param name="containerUri">The container URI.</param>
        public void LoadMediaBinAssetsAsync(Uri containerUri)
        {
            DataServiceClient client = this.CreateDataServiceClient();

            client.LoadMediaBinCompleted += (sender, args) =>
            {
                if (args.Error != null)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, args.Error);

                    if (args.Error.GetType() == typeof(Exception))
                    {
                        throw args.Error;
                    }

                    return;
                }

                try
                {
                    MediaBin mediaBin = DataServiceTranslator.ConvertToMediaBin(args.Result);
                    this.OnLoadMediaBinAssetsCompleted(new DataEventArgs <MediaBin>(mediaBin));
                }
                catch (Exception e)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, e);
                    throw;
                }
            };

            client.LoadMediaBinAsync(containerUri);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Loads the title templates asynchronously.
        /// </summary>
        public void LoadTitleTemplatesAsync()
        {
            DataServiceClient client = this.CreateDataServiceClient();

            client.LoadTitleTemplatesCompleted += (sender, args) =>
            {
                if (args.Error != null)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, args.Error);

                    if (args.Error.GetType() == typeof(Exception))
                    {
                        throw args.Error;
                    }

                    return;
                }

                try
                {
                    List <TitleTemplate> titleTemplates = DataServiceTranslator.ConvertToTitleTemplates(args.Result);
                    this.OnLoadTitleTemplatesCompleted(new DataEventArgs <List <TitleTemplate> >(titleTemplates));
                }
                catch (Exception e)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, e);
                    throw;
                }
            };

            client.LoadTitleTemplatesAsync();
        }
Exemplo n.º 6
0
        /// <summary>
        /// Get the list of projects for the given user.
        /// </summary>
        /// <param name="userName">The username.</param>
        public void GetProjectsByUserAsync(string userName)
        {
            DataServiceClient client = this.CreateDataServiceClient();

            client.GetProjectsByUserCompleted += (sender, args) =>
            {
                if (args.Error != null)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, args.Error);

                    if (args.Error.GetType() == typeof(Exception))
                    {
                        throw args.Error;
                    }

                    return;
                }

                try
                {
                    List <Project> projects = DataServiceTranslator.ConvertToProjects(args.Result);
                    this.OnGetProjectsByUserCompleted(new DataEventArgs <List <Project> >(projects));
                }
                catch (Exception e)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, e);
                    throw;
                }
            };

            client.GetProjectsByUserAsync(userName);
        }
        public void GenerateCompositeStreamManifest(Project project, Action <bool> success, Action <Exception> error)
        {
            BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None)
            {
                Name = "ExpressionEncoderServiceBinding",
                MaxReceivedMessageSize = 2147483647,
                MaxBufferSize          = 2147483647,
            };
            EndpointAddress endpointAddress = new EndpointAddress(this.serviceAddress);
            var             client          = new CompositeStreamManifestService.CompositeStreamManifestServiceClient(binding, endpointAddress);

            client.CreateCompositeStreamCompleted += (sender, e) =>
            {
                if (e.Error != null)
                {
                    error(e.Error);
                }
                else
                {
                    success(!e.Cancelled);
                }
            };
            var dsProject = DataServiceTranslator.ConvertToDataServiceProject(project);

            client.CreateCompositeStreamAsync(dsProject);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Saves the project asynchronously.
        /// </summary>
        /// <param name="project">The project.</param>
        public void SaveProjectAsync(Project project)
        {
            if (!this.isSaving)
            {
                this.isSaving = true;

                DataServiceClient client = this.CreateDataServiceClient();

                RCE.Services.Contracts.Project dataProject = DataServiceTranslator.ConvertToDataServiceProject(project);

                client.SaveProjectCompleted += (sender, args) =>
                {
                    this.isSaving = false;

                    if (args.Error != null)
                    {
                        client.Abort();
                        this.logger.Log(this.GetType().Name, args.Error);

                        if (args.Error.GetType() == typeof(Exception))
                        {
                            throw args.Error;
                        }

                        return;
                    }

                    this.OnSaveProjectCompleted(new DataEventArgs <bool>(args.Result));
                };

                client.SaveProjectAsync(dataProject);
            }
        }
Exemplo n.º 9
0
        public void ShouldConvertToMediaBin()
        {
            var serviceContainer = TranslatorHelper.CreateServiceMediaBin();

            var container = DataServiceTranslator.ConvertToMediaBin(serviceContainer);

            TranslatorHelper.AssertContainer(serviceContainer, container);
        }
Exemplo n.º 10
0
        public void ShouldConvertProjectIntoAServiceProject()
        {
            var project = TranslatorHelper.CreateProject();

            var serviceProject = DataServiceTranslator.ConvertToDataServiceProject(project);

            TranslatorHelper.AssertProject(project, serviceProject);
        }
Exemplo n.º 11
0
        public void ShouldConvertChildContainerIntoFolderAssets()
        {
            var resource = new Resource {
                Ref = "RefResource", ResourceType = "Master"
            };

            var videoItem = new VideoItem
            {
                Id        = new Uri("http://uri"),
                Title     = "VideoTitle",
                Duration  = 10,
                Resources = new ResourceCollection {
                    resource
                }
            };

            var childVideoItem = new VideoItem
            {
                Id        = new Uri("http://uri1"),
                Title     = "VideoTitle",
                Duration  = 10,
                Resources = new ResourceCollection {
                    resource
                }
            };

            var items = new ItemCollection {
                videoItem
            };

            var container = new Container {
                Items = items, Containers = new ContainerCollection()
            };

            var childContainer = new Container
            {
                Id    = new Uri("http://childContainer"),
                Title = "Folder",
                Items = new ItemCollection {
                    childVideoItem
                }
            };

            container.Containers.Add(childContainer);

            List <Asset> assets = DataServiceTranslator.ConvertToAssets(container);

            Assert.AreEqual(2, assets.Count);
            Assert.IsInstanceOfType(assets[1], typeof(FolderAsset));
            Assert.AreEqual(childContainer.Title, assets[1].Title);
            Assert.AreEqual(childContainer.Id, assets[1].ProviderUri);
            Assert.IsNull(((FolderAsset)assets[1]).ParentFolder);
            Assert.AreEqual(childVideoItem.Id, ((FolderAsset)assets[1]).Assets[0].ProviderUri);
            Assert.AreEqual(childVideoItem.Title, ((FolderAsset)assets[1]).Assets[0].Title);
            Assert.AreEqual(childVideoItem.Resources[0].ResourceType.ToUpper(), ((FolderAsset)assets[1]).Assets[0].ResourceType.ToString().ToUpper());
        }
Exemplo n.º 12
0
        public void ShouldReturnZeroAssetsWhenCollectionIsNull()
        {
            var container = new Container {
                Items = null
            };

            List <Asset> assets = DataServiceTranslator.ConvertToAssets(container);

            Assert.AreEqual(0, assets.Count);
        }
        public void GenerateOutputAsync(Project project)
        {
            OutputServiceClient client = this.GetClient();

            client.EnqueueJobCompleted += this.Client_EnqueueJobCompleted;

            RCE.Services.Contracts.Project dataProject = DataServiceTranslator.ConvertToDataServiceProject(project);

            client.EnqueueJobAsync(dataProject);
        }
        public void GenerateCompositeStreamManifestAsync(Project project, string pbpDataStreamName, string adsDataStreamName, bool compressManifest, string manifestUri, string gapCmsId, string gapAzureId)
        {
            OutputServiceClient client = this.GetClient();

            client.GenerateCompositeStreamManifestCompleted += this.Client_GenerateCompositeStreamManifestCompleted;

            RCE.Services.Contracts.Project dataProject = DataServiceTranslator.ConvertToDataServiceProject(project);

            client.GenerateCompositeStreamManifestAsync(dataProject, pbpDataStreamName, adsDataStreamName, compressManifest, manifestUri, gapCmsId, gapAzureId);
        }
Exemplo n.º 15
0
        public void ShouldConvertCollectionOfTitleTemplatesIntoListOfTitleTemplates()
        {
            var serviceTitleTemplates = new ObservableCollection <TitleTemplate>();

            serviceTitleTemplates.Add(TranslatorHelper.CreateServiceTitleTemplate());
            serviceTitleTemplates.Add(TranslatorHelper.CreateServiceTitleTemplate());

            var titleTemplates = DataServiceTranslator.ConvertToTitleTemplates(serviceTitleTemplates);

            TranslatorHelper.AssertTitleTemplate(serviceTitleTemplates[0], titleTemplates[0]);
            TranslatorHelper.AssertTitleTemplate(serviceTitleTemplates[1], titleTemplates[1]);
        }
Exemplo n.º 16
0
        public void ShouldConvertCollectionOfServiceProjectsIntoAListProjects()
        {
            var serviceProject1 = TranslatorHelper.CreateServiceProject();
            var serviceProject2 = TranslatorHelper.CreateServiceProject();

            var projectsCollection = new ObservableCollection <Project> {
                serviceProject1, serviceProject2
            };

            var projects = DataServiceTranslator.ConvertToProjects(projectsCollection);

            Assert.AreEqual(projectsCollection.Count, projects.Count);

            TranslatorHelper.AssertProject(projectsCollection[0], projects[0]);
            TranslatorHelper.AssertProject(projectsCollection[1], projects[1]);
        }
Exemplo n.º 17
0
        /// <summary>
        /// Loads the assets asynchronously.
        /// </summary>
        /// <param name="filter">The filter.</param>
        /// <param name="maxNumberOfItems">The max number of items.</param>
        public void LoadAssetsAsync(string filter, int maxNumberOfItems)
        {
            AssetsDataServiceClient client = this.CreateAssetsDataServiceClient();

            client.LoadLibraryFilterCompleted += (sender, args) =>
            {
                if (args.Error != null)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, args.Error);

                    if (args.Error.GetType() == typeof(Exception))
                    {
                        throw args.Error;
                    }

                    return;
                }

                try
                {
                    List <Asset> assets = DataServiceTranslator.ConvertToAssets(args.Result);
                    this.OnLoadAssetsCompleted(new DataEventArgs <List <Asset> >(assets));
                }
                catch (Exception e)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, e);
                    throw;
                }
            };

            string projectId = null;

            if (HtmlPage.Document.QueryString.TryGetValue("projectId", out projectId))
            {
                var highlightId = Guid.Parse(projectId);

                filter = string.Format("{0}HighlightId={1}", filter, highlightId);
            }
            else
            {
                maxNumberOfItems = 0;
            }

            client.LoadLibraryFilterAsync(filter, maxNumberOfItems);
        }
Exemplo n.º 18
0
        public void GenerateOutputAsync(Project project)
        {
            BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None)
            {
                Name = "ExpressionEncoderServiceBinding",
                MaxReceivedMessageSize = 2147483647,
                MaxBufferSize          = 2147483647,
            };

            EndpointAddress endpointAddress = new EndpointAddress(this.serviceAddress);

            ExpressionEncoderServiceClient client = new ExpressionEncoderServiceClient(binding, endpointAddress);

            client.EnqueueJobCompleted += this.Client_EnqueueJobCompleted;

            RCE.Services.Contracts.Project dataProject = DataServiceTranslator.ConvertToDataServiceProject(project);

            client.EnqueueJobAsync(dataProject);
        }
Exemplo n.º 19
0
        /// <summary>
        /// Loads the project asynchronously.
        /// </summary>
        /// <param name="projectUri">The project URI.</param>
        public void LoadProjectAsync(Uri projectUri)
        {
            this.OnLoadProjectCompleted(new DataEventArgs <Project>(null, null));

            if (projectUri == null)
            {
                return;
            }

            DataServiceClient client = this.CreateDataServiceClient();

            client.LoadProjectCompleted += (sender, args) =>
            {
                if (args.Error != null)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, args.Error);

                    if (args.Error.GetType() == typeof(Exception))
                    {
                        throw args.Error;
                    }

                    return;
                }

                try
                {
                    Project project = DataServiceTranslator.ConvertToProject(args.Result);
                    this.OnLoadProjectCompleted(new DataEventArgs <Project>(project));
                }
                catch (Exception e)
                {
                    client.Abort();
                    this.logger.Log(this.GetType().Name, e);
                    throw;
                }
            };

            client.LoadProjectAsync(projectUri);
        }
Exemplo n.º 20
0
        /// <summary>
        /// Saves the project asynchronously.
        /// </summary>
        /// <param name="project">The project.</param>
        public void SaveProjectAsync(Project project)
        {
            if (!this.isSaving)
            {
                this.isSaving = true;

                DataServiceClient client = this.CreateDataServiceClient();

                RCE.Services.Contracts.Project dataProject = DataServiceTranslator.ConvertToDataServiceProject(project);

                string projectId = null;
                if (HtmlPage.Document.QueryString.TryGetValue("projectId", out projectId))
                {
                    dataProject.HighlightId = Guid.Parse(projectId);
                }

                client.SaveProjectCompleted += (sender, args) =>
                {
                    this.isSaving = false;

                    if (args.Error != null)
                    {
                        client.Abort();
                        this.logger.Log(this.GetType().Name, args.Error);

                        if (args.Error.GetType() == typeof(Exception))
                        {
                            throw args.Error;
                        }

                        return;
                    }

                    this.OnSaveProjectCompleted(new DataEventArgs <bool>(args.Result));
                };

                client.SaveProjectAsync(dataProject);
            }
        }
Exemplo n.º 21
0
        public void ShouldConvertContainerIntoAssets()
        {
            var resource1 = new Resource {
                Ref = "RefResource", ResourceType = "Master"
            };
            var resource2 = new Resource {
                Ref = "http://uri/test.ism/manifest", ResourceType = "SmoothStream"
            };

            var videoItem1 = new VideoItem
            {
                Id        = new Uri("http://uri"),
                Title     = "VideoTitle",
                Duration  = 10,
                Resources = new ResourceCollection()
                {
                    resource1
                },
                Metadata = new List <MetadataField> {
                    new MetadataField("TestName", "TestValue")
                },
                ThumbnailSource = "http://test1/test.png"
            };

            var videoItem2 = new VideoItem
            {
                Id         = new Uri("http://uri2"),
                Title      = "VideoAdaptiveStreamingTitle",
                Duration   = 10,
                Creator    = "test",
                Created    = new DateTime(2009, 1, 1),
                Modified   = new DateTime(2009, 1, 2),
                ModifiedBy = "test1",
                Resources  = new ResourceCollection {
                    resource2
                }
            };

            var items = new ItemCollection()
            {
                videoItem1, videoItem2
            };

            var container = new Container {
                Items = items
            };

            List <Asset> assets = DataServiceTranslator.ConvertToAssets(container);

            Assert.AreEqual(2, assets.Count);
            Assert.AreEqual(videoItem1.Id, assets[0].ProviderUri);
            Assert.AreEqual(videoItem1.Title, assets[0].Title);
            Assert.AreEqual(videoItem1.Creator, assets[0].Creator);
            Assert.AreEqual(videoItem1.Created, assets[0].Created);
            Assert.AreEqual(videoItem1.ModifiedBy, assets[0].ModifiedBy);
            Assert.AreEqual(videoItem1.Modified, assets[0].Modified);
            Assert.AreEqual(videoItem1.Metadata, assets[0].Metadata);
            Assert.AreEqual(videoItem1.ThumbnailSource, ((VideoAsset)assets[0]).ThumbnailSource);
            StringAssert.Contains(assets[0].Source.ToString(), resource1.Ref);
            Assert.AreEqual(assets[0].ResourceType, ResourceType.Master);
            Assert.AreEqual(videoItem2.Id, assets[1].ProviderUri);
            Assert.AreEqual(videoItem2.Title, assets[1].Title);
            Assert.AreEqual(videoItem2.Creator, assets[1].Creator);
            Assert.AreEqual(videoItem2.Created, assets[1].Created);
            Assert.AreEqual(videoItem2.ModifiedBy, assets[1].ModifiedBy);
            Assert.AreEqual(videoItem2.Modified, assets[1].Modified);
            StringAssert.Contains(assets[1].Source.ToString(), resource2.Ref);
            Assert.AreEqual(assets[1].ResourceType, ResourceType.SmoothStream);
        }
Exemplo n.º 22
0
        public void ShouldReturnZeroAssetsWhenContainerIsNull()
        {
            List <Asset> assets = DataServiceTranslator.ConvertToAssets(null);

            Assert.AreEqual(0, assets.Count);
        }
Exemplo n.º 23
0
        public void ShouldReturnNullIfProjectContainerIsNull()
        {
            var result = DataServiceTranslator.ConvertToProject(null);

            Assert.IsNull(result);
        }