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()); }
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); }
/// <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); }
/// <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(); }
/// <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); }
/// <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); } }
public void ShouldConvertToMediaBin() { var serviceContainer = TranslatorHelper.CreateServiceMediaBin(); var container = DataServiceTranslator.ConvertToMediaBin(serviceContainer); TranslatorHelper.AssertContainer(serviceContainer, container); }
public void ShouldConvertProjectIntoAServiceProject() { var project = TranslatorHelper.CreateProject(); var serviceProject = DataServiceTranslator.ConvertToDataServiceProject(project); TranslatorHelper.AssertProject(project, serviceProject); }
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()); }
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); }
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]); }
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]); }
/// <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); }
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); }
/// <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); }
/// <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); } }
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); }
public void ShouldReturnZeroAssetsWhenContainerIsNull() { List <Asset> assets = DataServiceTranslator.ConvertToAssets(null); Assert.AreEqual(0, assets.Count); }
public void ShouldReturnNullIfProjectContainerIsNull() { var result = DataServiceTranslator.ConvertToProject(null); Assert.IsNull(result); }