/// <summary> /// Get DublinCore Metadata of supported file formats using IDublinCore Interface. /// Feature is supported in version 18.5 or greater of the API /// </summary> public static void GetDublinCoreMetadataUsingIDublinCore() { try { string[] files = Directory.GetFiles(XMPFilesDirectory); foreach (string file in files) { try { using (FormatBase format = FormatFactory.RecognizeFormat(file)) { IDublinCore dublinCoreContainer = format as IDublinCore; if (dublinCoreContainer != null) { DublinCoreMetadata dublinCoreMetadata = dublinCoreContainer.GetDublinCore(); if (dublinCoreMetadata != null) { Console.WriteLine(dublinCoreMetadata.Creator); Console.WriteLine(dublinCoreMetadata.Format); Console.WriteLine(dublinCoreMetadata.Subject); } } } } catch { Console.WriteLine("Could not load {0}", file); } } } catch (Exception) { throw; } }
public void DublinCoreMetadataConverter_Decode() { DublinCoreMetadata expected = new DublinCoreMetadata(); expected.Title.Add("Title1"); expected.Title.Add("Title2"); expected.Creator.Add("Creator 1"); expected.Creator.Add("Creator 2"); expected.Date.Add(new DateTime(1987, 2, 16, 0, 0, 0, DateTimeKind.Utc)); XElement metadata = XElement.Parse($@"{OAI_DC_ROOT} <dc:title>Title1</dc:title> <dc:title>Title2</dc:title> <dc:creator>Creator 1</dc:creator> <dc:creator>Creator 2</dc:creator> <dc:date>1987-02-16T00:00:00Z</dc:date> </oai_dc:dc>"); DublinCoreMetadata actual = _converter.Decode(metadata); Assert.AreEqual(expected.Title.Count, actual.Title.Count); Assert.AreEqual(expected.Title[0], actual.Title[0]); Assert.AreEqual(expected.Title[1], actual.Title[1]); Assert.AreEqual(expected.Creator[0], actual.Creator[0]); Assert.AreEqual(expected.Creator[1], actual.Creator[1]); Assert.AreEqual(expected.Date[0], actual.Date[0]); }
/// <summary> /// Get Dublin Core metadata using MetadataUtility class. /// Feature is supported in version 18.5 or greater of the API /// </summary> public static void GetDublinCoreMetadata() { try { string[] files = Directory.GetFiles(XMPFilesDirectory); foreach (string file in files) { try { DublinCoreMetadata dublinCoreMetadata = (DublinCoreMetadata)MetadataUtility.ExtractSpecificMetadata(file, MetadataType.DublinCore); if (dublinCoreMetadata != null) { Console.WriteLine(dublinCoreMetadata.Creator); Console.WriteLine(dublinCoreMetadata.Format); Console.WriteLine(dublinCoreMetadata.Subject); } } catch { Console.WriteLine("Could not load {0}", file); } } } catch (Exception) { throw; } }
public void DublinCoreMetadataConverter_Encode() { string expected = $@"{OAI_DC_ROOT} <dc:title>Title1</dc:title> <dc:title>Title2</dc:title> <dc:creator>Creator 1</dc:creator> <dc:creator>Creator 2</dc:creator> <dc:date>1987-02-16T00:00:00Z</dc:date> </oai_dc:dc>"; DublinCoreMetadata metadata = new DublinCoreMetadata(); metadata.Title.Add("Title1"); metadata.Title.Add("Title2"); metadata.Creator.Add("Creator 1"); metadata.Creator.Add("Creator 2"); metadata.Date.Add(new DateTime(1987, 2, 16, 0, 0, 0, DateTimeKind.Utc)); string actual = _converter.Encode(metadata).ToString(); Assert.AreEqual(expected, actual); }