예제 #1
0
    /// <summary>
    ///     Creates a bunch of content/media items return relation objects for them (unsaved)
    /// </summary>
    /// <param name="count"></param>
    /// <returns></returns>
    private IEnumerable <IRelation> CreateRelations(int count)
    {
        var rs     = RelationService;
        var rtName = Guid.NewGuid().ToString();
        var rt     = new RelationType(rtName, rtName, false, null, null);

        rs.Save(rt);

        var ct = ContentTypeBuilder.CreateBasicContentType();

        ContentTypeService.Save(ct);

        var mt = MediaTypeBuilder.CreateImageMediaType("img");

        MediaTypeService.Save(mt);

        return(Enumerable.Range(1, count).Select(index =>
        {
            var c1 = ContentBuilder.CreateBasicContent(ct);
            var c2 = MediaBuilder.CreateMediaImage(mt, -1);
            ContentService.Save(c1);
            MediaService.Save(c2);

            return new Relation(c1.Id, c2.Id, rt);
        }).ToList());
    }
예제 #2
0
        public void Render()
        {
            var media        = new MediaBuilder(this.Session).WithInData(this.GetResourceBytes("Domain.Tests.Resources.EmbeddedTemplate.odt")).Build();
            var templateType = new TemplateTypes(this.Session).OpenDocumentType;
            var template     = new TemplateBuilder(this.Session).WithMedia(media).WithTemplateType(templateType).WithArguments("logo, people").Build();

            this.Session.Derive();

            var people = new People(this.Session).Extent();
            var logo   = this.GetResourceBytes("Domain.Tests.Resources.logo.png");

            var data = new Dictionary <string, object>()
            {
                { "people", people },
            };

            var images = new Dictionary <string, byte[]>()
            {
                { "logo", logo },
            };

            var result = template.Render(data, images);

            File.WriteAllBytes("Embedded.odt", result);

            Assert.NotNull(result);
            Assert.NotEmpty(result);

            result = template.Render(data, images);

            Assert.NotNull(result);
            Assert.NotEmpty(result);
        }
예제 #3
0
        private Tuple <IMedia, IMedia, IMedia, IMedia, IMedia> CreateTrashedTestMedia()
        {
            // Create and Save folder-Media -> 1050
            IMediaType folderMediaType = MediaTypeService.Get(1031);
            Media      folder          = MediaBuilder.CreateMediaFolder(folderMediaType, -1);

            MediaService.Save(folder);

            // Create and Save folder-Media -> 1051
            Media folder2 = MediaBuilder.CreateMediaFolder(folderMediaType, -1);

            MediaService.Save(folder2);

            // Create and Save image-Media  -> 1052
            IMediaType imageMediaType = MediaTypeService.Get(1032);
            Media      image          = MediaBuilder.CreateMediaImage(imageMediaType, 1050);

            MediaService.Save(image);

            // Create and Save folder-Media that is trashed -> 1053
            Media folderTrashed = MediaBuilder.CreateMediaFolder(folderMediaType, -21);

            folderTrashed.Trashed = true;
            MediaService.Save(folderTrashed);

            // Create and Save image-Media child of folderTrashed -> 1054
            Media imageTrashed = MediaBuilder.CreateMediaImage(imageMediaType, folderTrashed.Id);

            imageTrashed.Trashed = true;
            MediaService.Save(imageTrashed);

            return(new Tuple <IMedia, IMedia, IMedia, IMedia, IMedia>(folder, folder2, image, folderTrashed, imageTrashed));
        }
예제 #4
0
    private IRelation CreateAndSaveRelation(string name, string alias)
    {
        var rs = RelationService;
        var rt = new RelationType(name, alias, false, null, null);

        rs.Save(rt);

        var ct = ContentTypeBuilder.CreateBasicContentType();

        ContentTypeService.Save(ct);

        var mt = MediaTypeBuilder.CreateImageMediaType("img");

        MediaTypeService.Save(mt);

        var c1 = ContentBuilder.CreateBasicContent(ct);
        var c2 = MediaBuilder.CreateMediaImage(mt, -1);

        ContentService.Save(c1);
        MediaService.Save(c2);

        var r = new Relation(c1.Id, c2.Id, rt);

        RelationService.Save(r);

        return(r);
    }
        /// <summary>
        /// Creates a
        /// <see cref="CpMediaContainer"/>
        /// object, given a metadata instantiation
        /// block.
        /// </summary>
        /// <param name="info">
        /// The metadata to use when instantiating the media.
        /// </param>
        /// <returns>a new media container</returns>
        public static CpMediaContainer CreateContainer(MediaBuilder.container info)
        {
            CpMediaContainer newObj = new CpMediaContainer();

            MediaBuilder.SetObjectProperties(newObj, info);
            return(newObj);
        }
예제 #6
0
        public void SaveMediaMultiple()
        {
            // Arrange
            IScopeProvider provider = ScopeProvider;

            using (IScope scope = provider.CreateScope())
            {
                MediaRepository repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);

                IMediaType mediaType = mediaTypeRepository.Get(1032);
                Media      file      = MediaBuilder.CreateMediaFile(mediaType, -1);

                // Act
                repository.Save(file);

                Media image = MediaBuilder.CreateMediaImage(mediaType, -1);
                repository.Save(image);

                // Assert
                Assert.That(file.HasIdentity, Is.True);
                Assert.That(image.HasIdentity, Is.True);
                Assert.That(file.Name, Is.EqualTo("Test File"));
                Assert.That(image.Name, Is.EqualTo("Test Image"));
                Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id));
                Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id));
            }
        }
예제 #7
0
        public void QueryMedia_ContentTypeIdFilter()
        {
            // Arrange
            IMediaType     folderMediaType = MediaTypeService.Get(1031);
            IScopeProvider provider        = ScopeProvider;

            using (IScope scope = provider.CreateScope())
            {
                MediaRepository repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);

                // Act
                for (int i = 0; i < 10; i++)
                {
                    Media folder = MediaBuilder.CreateMediaFolder(folderMediaType, -1);
                    repository.Save(folder);
                }

                int[]                types  = new[] { 1031 };
                IQuery <IMedia>      query  = provider.CreateQuery <IMedia>().Where(x => types.Contains(x.ContentTypeId));
                IEnumerable <IMedia> result = repository.Get(query);

                // Assert
                Assert.That(result.Count(), Is.GreaterThanOrEqualTo(11));
            }
        }
        /// <summary>
        /// Creates a
        /// <see cref="CpMediaItem"/>
        /// object, given a metadata instantiation
        /// block.
        /// </summary>
        /// <param name="info">
        /// The metadata to use when instantiating the media.
        /// </param>
        /// <returns>a new media item</returns>
        public static CpMediaItem CreateItem(MediaBuilder.item info)
        {
            CpMediaItem newObj = new CpMediaItem();

            MediaBuilder.SetObjectProperties(newObj, info);
            return(newObj);
        }
예제 #9
0
        public void Get_Paged_Parent_Child_Entities_With_Same_Entity_Relation()
        {
            // Create a media item and create a relationship between itself (parent -> child)
            MediaType imageType = MediaTypeBuilder.CreateImageMediaType("myImage");

            MediaTypeService.Save(imageType);
            Media media = MediaBuilder.CreateMediaImage(imageType, -1);

            MediaService.Save(media);
            IRelationType relType = RelationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelatedMediaAlias);

            RelationService.Relate(media.Id, media.Id, relType);

            using (IScope scope = ScopeProvider.CreateScope())
            {
                RelationRepository repository = CreateRepository(ScopeProvider, out RelationTypeRepository relationTypeRepository);

                // Get parent entities for child id
                var parents = repository.GetPagedParentEntitiesByChildId(media.Id, 0, 10, out long totalRecords).ToList();
                Assert.AreEqual(1, totalRecords);
                Assert.AreEqual(1, parents.Count);

                // Get child entities for parent id
                var children = repository.GetPagedChildEntitiesByParentId(media.Id, 0, 10, out totalRecords).ToList();
                Assert.AreEqual(1, totalRecords);
                Assert.AreEqual(1, children.Count);
            }
        }
예제 #10
0
    public void QueryMedia_ContentTypeIdFilter()
    {
        // Arrange
        var folderMediaType = MediaTypeService.Get(1031);
        var provider        = ScopeProvider;

        using (var scope = provider.CreateScope())
        {
            var repository = CreateRepository(provider, out var mediaTypeRepository);

            // Act
            for (var i = 0; i < 10; i++)
            {
                var folder = MediaBuilder.CreateMediaFolder(folderMediaType, -1);
                repository.Save(folder);
            }

            int[] types  = { 1031 };
            var   query  = provider.CreateQuery <IMedia>().Where(x => types.Contains(x.ContentTypeId));
            var   result = repository.Get(query);

            // Assert
            Assert.That(result.Count(), Is.GreaterThanOrEqualTo(11));
        }
    }
예제 #11
0
        private async void Play_Playlist_Click(object sender, RoutedEventArgs e)
        {
            MediaPlayer.getInstance().stop();

            playlistBtn.IsEnabled = false;
            urlBox.IsEnabled      = false;
            urlLoading.IsActive   = true;

            try
            {
                // configure builder from json url
                MediaBuilder builder = new MediaBuilder();
                await builder.configureFromURLAsync(urlBox.Text);

                // play media units
                MediaPlayer.getInstance().playMediaUnits(await builder.mediaUnitsAsync());
            }
            catch
            {
                var dialog = new MessageDialog("Invalid url");
                var task   = dialog.ShowAsync();
            }

            urlLoading.IsActive = false;
            urlBox.IsEnabled    = true;
            if (!urlBox.Text.Equals(""))
            {
                playlistBtn.IsEnabled = true;
            }
        }
예제 #12
0
        /// <summary>
        /// Record a video for 5 seconds and store it as c:\temp\example.mp4
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            // Install-Package Emgu.CV
            // Install-Package Emgu.CV.runtime.windows
            // Install-Package FFMediaToolkit
            // Install-Package DirectShowLib

            var camIndex = SelectCameraIndex();

            _captureDevice = new VideoCapture(camIndex, VideoCapture.API.DShow)
            {
                FlipVertical = true
            };
            _captureDevice.ImageGrabbed += CaptureDeviceImageGrabbed;
            var settings = new VideoEncoderSettings(width:
                                                    _captureDevice.Width
                                                    , height: _captureDevice.Height
                                                    , framerate: 15
                                                    , codec: VideoCodec.H264)
            {
                EncoderPreset = EncoderPreset.Fast,
                CRF           = 17 // Constant Rate Factor
            };

            // Download from https://github.com/BtbN/FFmpeg-Builds/releases
            FFmpegLoader.FFmpegPath =
                @"C:\Users\fiach\source\repos\Webcam\FFmpeg\";
            _videoOutput = MediaBuilder.CreateContainer(@"c:\temp\example.mp4").WithVideo(settings).Create();
            _captureDevice.Start();
            Thread.Sleep(TimeSpan.FromSeconds(5));
            _captureDevice.Stop();
            _captureDevice.Dispose();
            _videoOutput.Dispose();
        }
예제 #13
0
        public void QueryMedia_ContentTypeAliasFilter()
        {
            // we could support this, but it would require an extra join on the query,
            // and we don't absolutely need it now, so leaving it out for now

            // Arrange
            IMediaType     folderMediaType = MediaTypeService.Get(1031);
            IScopeProvider provider        = ScopeProvider;

            using (IScope scope = provider.CreateScope())
            {
                MediaRepository repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);

                // Act
                for (int i = 0; i < 10; i++)
                {
                    Media folder = MediaBuilder.CreateMediaFolder(folderMediaType, -1);
                    repository.Save(folder);
                }

                string[]             types  = new[] { "Folder" };
                IQuery <IMedia>      query  = provider.CreateQuery <IMedia>().Where(x => types.Contains(x.ContentType.Alias));
                IEnumerable <IMedia> result = repository.Get(query);

                // Assert
                Assert.That(result.Count(), Is.GreaterThanOrEqualTo(11));
            }
        }
예제 #14
0
        public void SaveMedia()
        {
            // Arrange
            IScopeProvider provider = ScopeProvider;

            using (IScope scope = provider.CreateScope())
            {
                MediaRepository repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);

                IMediaType mediaType = mediaTypeRepository.Get(1032);
                Media      image     = MediaBuilder.CreateMediaImage(mediaType, -1);

                // Act
                mediaTypeRepository.Save(mediaType);
                repository.Save(image);

                IMedia fetched = repository.Get(image.Id);

                // Assert
                Assert.That(mediaType.HasIdentity, Is.True);
                Assert.That(image.HasIdentity, Is.True);

                TestHelper.AssertPropertyValuesAreEqual(image, fetched);
            }
        }
        public static NonUnifiedGoodBuilder WithSerialisedDefaults(this NonUnifiedGoodBuilder @this, Organisation internalOrganisation)
        {
            var faker = @this.Session.Faker();

            var dutchLocale = new Locales(@this.Session).DutchNetherlands;

            var nonSerialisedProductType = new ProductTypes(@this.Session).FindBy(M.ProductType.Name, "nonSerialisedProductType");

            if (nonSerialisedProductType == null)
            {
                var size = new SerialisedItemCharacteristicTypeBuilder(@this.Session)
                           .WithName("Size")
                           .WithLocalisedName(new LocalisedTextBuilder(@this.Session).WithText("Afmeting").WithLocale(dutchLocale).Build())
                           .Build();

                var weight = new SerialisedItemCharacteristicTypeBuilder(@this.Session)
                             .WithName("Weight")
                             .WithLocalisedName(new LocalisedTextBuilder(@this.Session).WithText("Gewicht").WithLocale(dutchLocale).Build())
                             .WithUnitOfMeasure(new UnitsOfMeasure(@this.Session).Kilogram)
                             .Build();

                nonSerialisedProductType = new ProductTypeBuilder(@this.Session)
                                           .WithName("serialisedProductType")
                                           .WithSerialisedItemCharacteristicType(size)
                                           .WithSerialisedItemCharacteristicType(weight)
                                           .Build();
            }

            @this.WithName(faker.Commerce.ProductName());
            @this.WithPart(new NonUnifiedPartBuilder(@this.Session).WithSerialisedDefaults(internalOrganisation, faker).Build());
            @this.WithDescription(faker.Lorem.Sentence());
            @this.WithComment(faker.Lorem.Sentence());
            @this.WithInternalComment(faker.Lorem.Sentence());
            @this.WithKeywords(faker.Lorem.Sentence());
            @this.WithUnitOfMeasure(new UnitsOfMeasure(@this.Session).Piece);
            @this.WithPrimaryPhoto(new MediaBuilder(@this.Session).WithInDataUri(faker.Image.DataUri(width: 200, height: 56)).Build());
            @this.WithPhoto(new MediaBuilder(@this.Session).WithInDataUri(faker.Image.DataUri(width: 200, height: 56)).Build());
            @this.WithPhoto(new MediaBuilder(@this.Session).WithInDataUri(faker.Image.DataUri(width: 200, height: 56)).Build());
            @this.WithPublicElectronicDocument(new MediaBuilder(@this.Session).WithInFileName("doc1.en.pdf").WithInData(faker.Random.Bytes(1000)).Build());
            @this.WithPrivateElectronicDocument(new MediaBuilder(@this.Session).WithInFileName("doc2.en.pdf").WithInData(faker.Random.Bytes(1000)).Build());
            @this.WithProductIdentification(new SkuIdentificationBuilder(@this.Session).WithDefaults().Build());
            @this.WithProductIdentification(new EanIdentificationBuilder(@this.Session).WithDefaults().Build());
            @this.WithProductIdentification(new ManufacturerIdentificationBuilder(@this.Session).WithDefaults().Build());
            @this.WithVatRegime(faker.Random.ListItem(@this.Session.Extent <VatRegime>()));

            foreach (Locale additionalLocale in @this.Session.GetSingleton().AdditionalLocales)
            {
                @this.WithLocalisedName(new LocalisedTextBuilder(@this.Session).WithText(faker.Lorem.Word()).WithLocale(additionalLocale).Build());
                @this.WithLocalisedDescription(new LocalisedTextBuilder(@this.Session).WithText(faker.Lorem.Sentence()).WithLocale(additionalLocale).Build());
                @this.WithLocalisedComment(new LocalisedTextBuilder(@this.Session).WithText(faker.Lorem.Sentence()).WithLocale(additionalLocale).Build());
                @this.WithLocalisedKeyword(new LocalisedTextBuilder(@this.Session).WithText(faker.Lorem.Sentence()).WithLocale(additionalLocale).Build());

                var localisedDocument = new MediaBuilder(@this.Session).WithInFileName($"doc1.{additionalLocale.Country.IsoCode}.pdf").WithInData(faker.Random.Bytes(1000)).Build();
                @this.WithPublicLocalisedElectronicDocument(new LocalisedMediaBuilder(@this.Session).WithMedia(localisedDocument).WithLocale(additionalLocale).Build());
                @this.WithPrivateLocalisedElectronicDocument(new LocalisedMediaBuilder(@this.Session).WithMedia(localisedDocument).WithLocale(additionalLocale).Build());
            }

            return(@this);
        }
예제 #16
0
        public void Export_Zip()
        {
            var mt = MediaTypeBuilder.CreateImageMediaType("testImage");

            MediaTypeService.Save(mt);
            var m1 = MediaBuilder.CreateMediaFile(mt, -1);

            MediaService.Save(m1);

            //Ensure a file exist
            var fullPath = HostingEnvironment.MapPathWebRoot(m1.Properties[Constants.Conventions.Media.File].GetValue().ToString());

            using (StreamWriter file1 = File.CreateText(fullPath))
            {
                file1.WriteLine("hello");
            }

            var def = new PackageDefinition
            {
                Name      = "test",
                MediaUdis = new List <GuidUdi>()
                {
                    m1.GetUdi()
                }
            };

            bool result = PackageBuilder.SavePackage(def);

            Assert.IsTrue(result);
            Assert.IsTrue(def.PackagePath.IsNullOrWhiteSpace());

            string packageXmlPath = PackageBuilder.ExportPackage(def);

            def = PackageBuilder.GetById(def.Id); // re-get
            Assert.IsNotNull(def.PackagePath);

            using (FileStream packageZipStream = File.OpenRead(packageXmlPath))
                using (ZipArchive zipArchive = PackageMigrationResource.GetPackageDataManifest(packageZipStream, out XDocument packageXml))
                {
                    string test = "test-file.txt";
                    Assert.Multiple(() =>
                    {
                        var mediaEntry = zipArchive.GetEntry("media/media/test-file.txt");
                        Assert.AreEqual("umbPackage", packageXml.Root.Name.ToString());
                        Assert.IsNotNull(mediaEntry);
                        Assert.AreEqual(test, mediaEntry.Name);
                        Assert.IsNotNull(zipArchive.GetEntry("package.xml"));
                        Assert.AreEqual(
                            $"<MediaItems><MediaSet><testImage id=\"{m1.Id}\" key=\"{m1.Key}\" parentID=\"-1\" level=\"1\" creatorID=\"-1\" sortOrder=\"0\" createDate=\"{m1.CreateDate.ToString("s")}\" updateDate=\"{m1.UpdateDate.ToString("s")}\" nodeName=\"Test File\" urlName=\"test-file\" path=\"{m1.Path}\" isDoc=\"\" nodeType=\"{mt.Id}\" nodeTypeAlias=\"testImage\" writerName=\"\" writerID=\"0\" udi=\"{m1.GetUdi()}\" mediaFilePath=\"/media/test-file.txt\"><umbracoFile><![CDATA[/media/test-file.txt]]></umbracoFile><umbracoBytes><![CDATA[100]]></umbracoBytes><umbracoExtension><![CDATA[png]]></umbracoExtension></testImage></MediaSet></MediaItems>",
                            packageXml.Element("umbPackage").Element("MediaItems").ToString(SaveOptions.DisableFormatting));
                        Assert.AreEqual(2, zipArchive.Entries.Count());
                        Assert.AreEqual(ZipArchiveMode.Read, zipArchive.Mode);
                        Assert.IsNull(packageXml.DocumentType);
                        Assert.IsNull(packageXml.NextNode);
                        Assert.IsNull(packageXml.Parent);
                        Assert.IsNull(packageXml.PreviousNode);
                    });
                }
        }
        /// <summary>
        /// Creates a
        /// <see cref="DvMediaItem"/>
        /// object, given a metadata instantiation
        /// block.
        /// </summary>
        /// <param name="info">
        /// The metadata to use when instantiating the media.
        /// </param>
        /// <returns>a new media item</returns>
        public static DvMediaItem CreateItem(MediaBuilder.item info)
        {
            DvMediaItem newObj = new DvMediaItem();

            MediaBuilder.SetObjectProperties(newObj, info);
            newObj.TrackMetadataChanges = true;
            return(newObj);
        }
 /// <summary>
 /// Optimized version of for adding multiple
 /// child items and containers at once.
 /// <para>
 /// This method is somewhat different than <see cref="DvMediaContainer.AddObjects"/>()
 /// in that the added branches are assigned a new unique ids from
 /// <see cref="MediaBuilder.GetUniqueId"/>(). Such a methodology absolves the
 /// application-logic from requiring <see cref="MediaBuilder.PrimeNextId"/>()
 /// to prevent object ID collisions. Programmers should be careful when mixing
 /// use of <see cref="DvMediaContainer.AddObjects"/>() and
 /// AddBranches(), as improper use can still cause ID collisions. As a general rule,
 /// application logic that uses <see cref="DvMediaContainer.AddObjects"/>()
 /// should always use <see cref="MediaBuilder.PrimeNextId"/>() to prime the
 /// media object counter and application logic that always uses AddBranches()
 /// need not do this.
 /// </para>
 /// </summary>
 /// <param name="branches">ICollection of items that implement
 /// <see cref="IDvMedia"/>
 /// </param>
 /// <exception cref="Error_PendingDeleteException">
 /// Thrown if the item being added is a reference
 /// to another item that has been marked for removal.
 /// </exception>
 /// <exception cref="Error_ObjectIsContainerAndItem">
 /// Thrown if an IDvMedia object indicates it is an item
 /// as well as a container.
 /// </exception>
 /// <exception cref="InvalidCastException">
 /// Thrown if the branch is not a <see cref="IDvContainer"/> or a <see cref="IDvItem"/>.
 /// </exception>
 public virtual void AddBranches(ICollection branches)
 {
     foreach (IUPnPMedia branch in branches)
     {
         branch.ID = MediaBuilder.GetUniqueId();
     }
     this.AddObjects(branches, false);
 }
        /// <summary>
        /// Creates a
        /// <see cref="DvMediaContainer"/>
        /// object, given a metadata instantiation
        /// block.
        /// </summary>
        /// <param name="info">
        /// The metadata to use when instantiating the media.
        /// </param>
        /// <returns>a new media container</returns>
        public static DvMediaContainer CreateContainer(MediaBuilder.container info)
        {
            DvMediaContainer newObj = new DvMediaContainer();

            MediaBuilder.SetObjectProperties(newObj, info);
            newObj.TrackMetadataChanges = true;
            return(newObj);
        }
예제 #20
0
        private Template CreateOpenDocumentTemplate(byte[] content)
        {
            var media        = new MediaBuilder(this.Session).WithInData(content).Build();
            var templateType = new TemplateTypes(this.Session).OpenDocumentType;
            var template     = new TemplateBuilder(this.Session).WithMedia(media).WithTemplateType(templateType).Build();

            return(template);
        }
예제 #21
0
        private static Template CreateOpenDocumentTemplate <T>(this InternalOrganisation @this, byte[] content)
        {
            var media        = new MediaBuilder(@this.Strategy.Session).WithInData(content).Build();
            var templateType = new TemplateTypes(@this.Strategy.Session).OpenDocumentType;
            var template     = new TemplateBuilder(@this.Strategy.Session).WithMedia(media).WithTemplateType(templateType).WithArguments <T>().Build();

            return(template);
        }
예제 #22
0
        public static Template CreateOpenDocumentTemplate <T>(this Singleton @this, string fileName, byte[] content)
        {
            var media        = new MediaBuilder(@this.Strategy.Session).WithInFileName(fileName).WithInData(content).Build();
            var templateType = new TemplateTypes(@this.Strategy.Session).OpenDocumentType;
            var template     = new TemplateBuilder(@this.Strategy.Session).WithMedia(media).WithTemplateType(templateType).WithArguments <T>().Build();

            return(template);
        }
예제 #23
0
        public void BuilderWithEmptyData()
        {
            var binary = new byte[0];
            var media  = new MediaBuilder(this.Session).WithInData(binary).Build();

            var derivationLog = this.Session.Derive(false);

            Assert.True(derivationLog.HasErrors);
        }
        /// <summary>
        /// Used by
        /// <see cref="CpMediaBuilder"/>
        /// to instantiate a root container.
        /// </summary>
        /// <param name="info">metadata information for the container</param>
        /// <returns>the new root container</returns>
        internal static CpRootContainer CreateRoot(MediaBuilder.container info)
        {
            info.ID        = "0";
            info.IdIsValid = true;
            CpRootContainer root = new CpRootContainer();

            MediaBuilder.SetObjectProperties(root, info);
            return(root);
        }
예제 #25
0
        private void pictureBox6_Click(object sender, EventArgs e)
        {
            //Media
            MediaBuilder doble = new MediaBuilder();

            compras.Add(doble.cocinar());
            PrecioFinal += doble.cocinar().costo;
            UpdateGrid();
        }
예제 #26
0
        public static void Convert(GrabbedMedia videoStream, GrabbedMedia audioStream, string videoPath, string audioPath, string outputPath)
        {
            var builder = new MediaBuilder(outputPath);

            builder.AddStreamSource(videoPath, MediaStreamType.Video);
            builder.AddStreamSource(audioPath, MediaStreamType.Audio);
            builder.OutputMimeType  = videoStream.Format.Mime;
            builder.OutputShortName = videoStream.Format.Extension;
            builder.Build();
        }
예제 #27
0
        public void BuilderWithDataUrl()
        {
            const string DataUri = @"data:image/jpeg;base64,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";
            var          photo   = new MediaBuilder(this.Session).WithInDataUri(DataUri).Build();

            this.Session.Derive(true);

            photo.MediaContent.Type.ShouldEqual("image/jpeg");
            photo.MediaContent.Data.Length.ShouldBeGreaterThan(0);
        }
        /// <summary>
        /// Makes it so that a DvMediaItem instantiated from an XmlElement
        /// instantiates its child resources as <see cref="DvMediaResource"/> objects.
        ///
        /// <para>
        /// Derived classes that expect different types for their resources and child
        /// media objects need to override this method.
        /// </para>
        /// </summary>
        /// <param name="xmlElement"></param>
        protected override void FinishInitFromXml(XmlElement xmlElement)
        {
            ArrayList children;

            base.UpdateEverything(true, true, typeof(DvMediaResource), typeof(DvMediaItem), typeof(DvMediaContainer), xmlElement, out children);
            if (this.m_ID.StartsWith(MediaBuilder.Seed) == false)
            {
                this.m_ID = MediaBuilder.GetUniqueId();
            }
        }
        /// <summary>
        /// Used by
        /// <see cref="MediaServerDevice"/>
        /// to instantiate a root container.
        /// </summary>
        /// <param name="info">metadata information for the container</param>
        /// <returns>the new root container</returns>
        internal static DvRootContainer CreateRoot(MediaBuilder.container info)
        {
            info.ID        = "0";
            info.IdIsValid = true;
            DvRootContainer root = new DvRootContainer();

            MediaBuilder.SetObjectProperties(root, info);
            root.TrackMetadataChanges = true;
            return(root);
        }
예제 #30
0
        public void BuilderWithData()
        {
            var binary = new byte[] { 0, 1, 2, 3 };
            var media  = new MediaBuilder(this.Session).WithInData(binary).Build();

            this.Session.Derive();

            Assert.True(media.ExistMediaContent);
            Assert.Equal(media.MediaContent.Type, "application/octet-stream");
        }
        private async void Play_Playlist_Click(object sender, RoutedEventArgs e)
        {
            MediaPlayer.getInstance().stop();

            playlistBtn.IsEnabled = false;
            urlBox.IsEnabled = false;
            urlLoading.IsActive = true;

            try
            {
                // configure builder from json url
                MediaBuilder builder = new MediaBuilder();
                await builder.configureFromURLAsync(urlBox.Text);

                // play media units
                MediaPlayer.getInstance().playMediaUnits(await builder.mediaUnitsAsync());
            }
            catch
            {
                var dialog = new MessageDialog("Invalid url");
                var task = dialog.ShowAsync();
            }

            urlLoading.IsActive = false;
            urlBox.IsEnabled = true;
            if (!urlBox.Text.Equals(""))
                playlistBtn.IsEnabled = true;
        }