private static OverlayAsset CreateOverlayAsset( string azureId, string xamlTemplate, string title, string fields, double width, double height, double x, double y, double?duration, string cmsId) { List <MetadataField> overlayMetadata = GetOverlayMetadata(fields); OverlayAsset overlayAsset = new OverlayAsset { ProviderUri = CreateUri("Overlays"), Title = title, Created = DateTime.Now, Metadata = overlayMetadata, XamlResource = xamlTemplate, Height = height * 100, Width = width * 100, PositionX = x * 100, PositionY = y * 100, DurationInSeconds = duration.HasValue ? duration.Value : 10, CMSId = cmsId, AzureId = azureId }; return(overlayAsset); }
private void SetOnPropertyChangedHandler(OverlayAsset overlayAsset) { if (overlayAsset != null) { overlayAsset.PropertyChanged += this.OnOverlayAssetPropertyChanged; overlayAsset.Metadata.ForEach(m => m.PropertyChanged -= this.OnOverlayAssetPropertyChanged); overlayAsset.Metadata.ForEach(m => m.PropertyChanged += this.OnOverlayAssetPropertyChanged); } }
private void ShowOverlayPreview(PreviewOverlayPayload payload) { OverlayAsset overlay = payload.OverlayAsset; if (overlay != null) { this.View.AddXamlElement(overlay.XamlResource, this.GetOverlayMetadata(overlay), overlay.PositionX, overlay.PositionY, overlay.Height, overlay.Width); } this.View.RemovePlaybackOverlays(); }
public OverlayPreview(OverlayAsset asset) { InitializeComponent(); if (asset == null) { throw new ArgumentNullException("asset"); } this.DataContext = asset; }
/// <summary> /// This method is called to show the metadata for an /// asset in the metadata region. /// </summary> /// <param name="asset">Asset for the metadata.</param> private void ShowMetadata(TimelineElement timelineElement) { OverlayAsset overlayAsset = timelineElement != null ? timelineElement.Asset as OverlayAsset : null; if (overlayAsset != null) { this.Overlay = overlayAsset; this.ShowMetadataInformation = true; this.regionManager.Regions["ClipMetadataRegion"].Activate(this.View); } }
public void ShouldPopulateOverlaysListWhenAssetsAvailableEventIsPublished() { var vm = this.CreateViewModel(); OverlayAsset o1 = new OverlayAsset(); OverlayAsset o2 = new OverlayAsset(); AudioAsset a1 = new AudioAsset(); VideoAsset v1 = new VideoAsset(); var assets = new List <Asset> { o1, o2, a1, v1 }; Assert.AreEqual(0, vm.Overlays.Count); this.assetsAvailableEvent.Publish(new DataEventArgs <List <Asset> >(assets)); Assert.AreEqual(2, vm.Overlays.Count); CollectionAssert.Contains(vm.Overlays, o1); CollectionAssert.Contains(vm.Overlays, o2); }
public void ShouldClearOverlaysListBeforeAddingAssetsWhenAssetsAvailableEventIsPublished() { var vm = this.CreateViewModel(); OverlayAsset o1 = new OverlayAsset(); OverlayAsset o2 = new OverlayAsset(); AudioAsset a1 = new AudioAsset(); VideoAsset v1 = new VideoAsset(); var assets = new List <Asset> { o1, o2, a1, v1 }; Assert.AreEqual(0, vm.Overlays.Count); this.assetsAvailableEvent.Publish(new DataEventArgs <List <Asset> >(assets)); Assert.AreEqual(2, vm.Overlays.Count); CollectionAssert.Contains(vm.Overlays, o1); CollectionAssert.Contains(vm.Overlays, o2); OverlayAsset o3 = new OverlayAsset(); OverlayAsset o4 = new OverlayAsset(); AudioAsset a2 = new AudioAsset(); VideoAsset v2 = new VideoAsset(); var newAssets = new List <Asset> { o3, o4, a2, v2 }; this.assetsAvailableEvent.Publish(new DataEventArgs <List <Asset> >(newAssets)); Assert.AreEqual(2, vm.Overlays.Count); CollectionAssert.Contains(vm.Overlays, o3); CollectionAssert.Contains(vm.Overlays, o4); }
private IDictionary <string, string> GetOverlayMetadata(OverlayAsset overlay) { var metadataList = overlay.Metadata; return(metadataList.ToDictionary(metadata => metadata.Name, metadata => metadata.Value as string)); }
public PreviewOverlayPayload(OverlayAsset overlayAsset) { this.OverlayAsset = overlayAsset; }