Beispiel #1
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());
        }
Beispiel #2
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());
        }
        /// <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);
        }
Beispiel #4
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());
        }
Beispiel #5
0
        public void ShouldReturnZeroAssetsWhenCollectionIsNull()
        {
            var container = new Container {
                Items = null
            };

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

            Assert.AreEqual(0, assets.Count);
        }
Beispiel #6
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);
        }
Beispiel #7
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);
        }
Beispiel #8
0
        public void ShouldReturnZeroAssetsWhenContainerIsNull()
        {
            List <Asset> assets = DataServiceTranslator.ConvertToAssets(null);

            Assert.AreEqual(0, assets.Count);
        }