public void ReadMetadata() { // Given IExecutionContext context; IDocument[] documents; Dictionary <IDocument, IDictionary <string, object> > cloneDictionary; Setup(out context, out documents, out cloneDictionary, Path.Combine(TestContext.CurrentContext.TestDirectory, @"Samples\Flamme.png")); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp() .WithMetadata("xmpRights:UsageTerms", "Copyright"); // When var returnedDocuments = directoryMetadata.Execute(new List <IDocument>(documents), context).ToList(); // Make sure to materialize the result list // Then string expected = "This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International License</a>."; Assert.True(cloneDictionary[documents[0]] .ContainsKey("Copyright"), "Metadata Copyright not found"); Assert.AreEqual(expected, cloneDictionary[documents[0]]["Copyright"], "Metadata Copyright Wrong Value"); }
public void ReadMetadata() { // Given IExecutionContext context; IDocument[] documents; Dictionary<IDocument, IDictionary<string, object>> cloneDictionary; Setup(out context, out documents, out cloneDictionary, Path.Combine(TestContext.CurrentContext.TestDirectory, @"Samples\Flamme.png")); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp() .WithMetadata("xmpRights:UsageTerms", "Copyright"); // When var returnedDocuments = directoryMetadata.Execute(new List<IDocument>(documents), context).ToList(); // Make sure to materialize the result list // Then string expected = "This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International License</a>."; Assert.True(cloneDictionary[documents[0]] .ContainsKey("Copyright"), "Metadata Copyright not found"); Assert.AreEqual(expected, cloneDictionary[documents[0]]["Copyright"], "Metadata Copyright Wrong Value"); }
public void UsingNonDefaultNamespace() { // Given IDocument[] documents; Dictionary <IDocument, IDictionary <string, object> > cloneDictionary; Setup(out documents, out cloneDictionary, @"Samples\Flamme.png"); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp() .WithNamespace("http://ns.adobe.com/xap/1.0/rights/", "bla") .WithMetadata("bla:UsageTerms", "Copyright"); // When var returnedDocuments = directoryMetadata.Execute(new List <IDocument>(documents), Substitute.For <IExecutionContext>()).ToList(); // Make sure to materialize the result list // Then string expected = "This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International License</a>."; Assert.True(cloneDictionary[documents[0]] .ContainsKey("Copyright"), "Metadata Copyright not found"); Assert.AreEqual(expected, cloneDictionary[documents[0]]["Copyright"], "Metadata Copyright Wrong Value"); }
public void DontSkipMissingMandatory() { // Given ThrowOnTraceEventType(TraceEventType.Error); IDocument[] documents; IExecutionContext context; Dictionary <IDocument, IDictionary <string, object> > cloneDictionary; Setup( out context, out documents, out cloneDictionary, Path.Combine(TestContext.CurrentContext.TestDirectory, @"Samples\Flamme.png"), Path.Combine(TestContext.CurrentContext.TestDirectory, @"Samples\RomantiqueInitials.ttf")); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp(skipElementOnMissingMandatoryData: false) .WithMetadata("xmpRights:UsageTerms", "Copyright", true); // When List <IDocument> returnedDocuments = directoryMetadata.Execute(new List <IDocument>(documents), context).ToList(); // Make sure to materialize the result list // Then Assert.AreEqual( 2, returnedDocuments.Count, "Wrong number of returned Documents"); }
public void ReadMetadata() { // Given System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); TestExecutionContext context = new TestExecutionContext(); IEnumerable <IDocument> documents = GetDocuments(Path.Combine(TestContext.CurrentContext.TestDirectory, "Samples", "Flamme.png")); Xmp directoryMetadata = new Xmp() .WithMetadata("xmpRights:UsageTerms", "Copyright"); // When List <IDocument> results = directoryMetadata.Execute(new List <IDocument>(documents), context).ToList(); // Make sure to materialize the result list // Then results.Single()["Copyright"].ToString() .ShouldBe("This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International License</a>."); }
public void DontSkipMissingMandatory() { // Given System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); ThrowOnTraceEventType(TraceEventType.Error); TestExecutionContext context = new TestExecutionContext(); IEnumerable <IDocument> documents = GetDocuments( Path.Combine(TestContext.CurrentContext.TestDirectory, "Samples", "Flamme.png"), Path.Combine(TestContext.CurrentContext.TestDirectory, "Samples", "RomantiqueInitials.ttf")); Xmp directoryMetadata = new Xmp(skipElementOnMissingMandatoryData: false) .WithMetadata("xmpRights:UsageTerms", "Copyright", true); // When List <IDocument> results = directoryMetadata.Execute(new List <IDocument>(documents), context).ToList(); // Make sure to materialize the result list // Then results.Count.ShouldBe(2); }
public void LoadFromMetadata(string fileName) { try { using (var xmp = Xmp.FromFile(fileName, XmpFileMode.ReadOnly)) { string propValue; PropertyFlags flags; xmp.XmpCore.GetProperty(XmpNamespace, XmpField, out propValue, out flags); if (!string.IsNullOrEmpty(propValue)) { Load(propValue); } } } catch (Exception exc) { Logger.Instance.Error("Error while parsing XMP metadata.", exc); } }
public void DontSkipMissingMandetory() { // Given IDocument[] documents; Dictionary <IDocument, IDictionary <string, object> > cloneDictionary; Setup(out documents, out cloneDictionary, @"Samples\Flamme.png", @"Samples\RomantiqueInitials.ttf"); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp(skipElementOnMissingMandatoryData: false) .WithMetadata("xmpRights:UsageTerms", "Copyright", true); // When var returnedDocuments = directoryMetadata.Execute(new List <IDocument>(documents), Substitute.For <IExecutionContext>()).ToList(); // Make sure to materialize the result list // Then Assert.AreEqual(2, returnedDocuments.Count, "Wrong number of returned Documents"); }
public void DontSkipMissingMandatory() { // Given ThrowOnTraceEventType(TraceEventType.Error); IDocument[] documents; IExecutionContext context; Dictionary<IDocument, IDictionary<string, object>> cloneDictionary; Setup(out context, out documents, out cloneDictionary, Path.Combine(TestContext.CurrentContext.TestDirectory, @"Samples\Flamme.png"), Path.Combine(TestContext.CurrentContext.TestDirectory, @"Samples\RomantiqueInitials.ttf")); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp(skipElementOnMissingMandatoryData: false) .WithMetadata("xmpRights:UsageTerms", "Copyright", true); // When var returnedDocuments = directoryMetadata.Execute(new List<IDocument>(documents), context).ToList(); // Make sure to materialize the result list // Then Assert.AreEqual(2, returnedDocuments.Count, "Wrong number of returned Documents"); }
public static MetaDataItem[] GetXmpData(string filename) { if (PageUtils.IsRunningOnMono()) { return(new MetaDataItem[0]); } List <MetaDataItem> ret = new List <MetaDataItem>(); try { Xmp xmp = Xmp.FromFile(filename, XmpFileMode.ReadOnly); DublinCore dc = new DublinCore(xmp); if (dc.Contributor.Count > 0) { foreach (string con in dc.Contributor) { ret.Add(new MetaDataItem("Xmp:Contributor", cleanXmpString(con))); } // foreach } if (dc.Coverage != null) { ret.Add(new MetaDataItem("Xmp:Coverage", cleanXmpString(dc.Coverage))); } if (dc.Creator.Count > 0) { foreach (string s in dc.Creator) { ret.Add(new MetaDataItem("Xmp:Creator", cleanXmpString(s))); } } if (dc.Date.Count > 0) { foreach (DateTime dt in dc.Date) { ret.Add(new MetaDataItem("Xmp:Date", (dt))); } } if (dc.Description != null && dc.Description.DefaultValue != null) { ret.Add(new MetaDataItem("Xmp:Description", cleanXmpString(dc.Description.DefaultValue))); } if (dc.Format != null) { ret.Add(new MetaDataItem("Xmp:Format", cleanXmpString(dc.Format))); } if (dc.Language.Count > 0) { foreach (string lang in dc.Language) { ret.Add(new MetaDataItem("Xmp:Language", cleanXmpString(lang))); } } if (dc.Publisher.Count > 0) { foreach (string pub in dc.Publisher) { ret.Add(new MetaDataItem("Xmp:Publisher", cleanXmpString(pub))); } } if (dc.Relation.Count > 0) { foreach (string rel in dc.Relation) { ret.Add(new MetaDataItem("Xmp:Relation", cleanXmpString(rel))); } } if (dc.Rights != null && dc.Rights.DefaultValue != null) { ret.Add(new MetaDataItem("Xmp:Rights", (dc.Rights.DefaultValue))); } if (dc.Source != null) { ret.Add(new MetaDataItem("Xmp:Source", cleanXmpString(dc.Source))); } if (dc.Subject.Count > 0) { foreach (string sub in dc.Subject) { ret.Add(new MetaDataItem("Xmp:Subject", cleanXmpString(sub))); } } if (dc.Title != null && dc.Title.DefaultValue != null) { ret.Add(new MetaDataItem("Xmp:Title", (dc.Title.DefaultValue))); } if (dc.Type != null) { ret.Add(new MetaDataItem("Xmp:Type", cleanXmpString(dc.Type))); } } catch (DllNotFoundException dllEx) { throw dllEx; } catch (Exception ex) { Console.Write(ex.Message); } return(ret.ToArray()); }