SlideCombine/MetadataModel.cs

110 lines
3.5 KiB
C#
Raw Permalink Normal View History

using System;
using System.Collections.Generic;
namespace SlideCombine
{
public class DocumentMetadata
{
public string Title { get; set; }
public string OtherTitles { get; set; }
public string Volume { get; set; }
public string ISBN { get; set; }
public string Creator { get; set; }
public string Contributor { get; set; }
public string IssuedDate { get; set; }
public string Publisher { get; set; }
public string Place { get; set; }
public string ClassificationNumber { get; set; }
public string Page { get; set; }
public List<BookmarkItem> TableOfContents { get; set; }
public string Subject { get; set; }
public string Date { get; set; }
public string Spatial { get; set; }
public string OtherISBN { get; set; }
public string OtherTime { get; set; }
public string Url { get; set; }
public DocumentMetadata()
{
TableOfContents = new List<BookmarkItem>();
}
public string ToFormattedString()
{
var result = new System.Text.StringBuilder();
// Title行
result.AppendLine($"title:{Title}");
// Other titles行如果有
if (!string.IsNullOrEmpty(OtherTitles))
{
result.AppendLine($"Other titles:{OtherTitles}");
}
// Volume行
result.AppendLine($"Volume:{Volume}");
// ISBN行 - 即使为空也要输出
result.AppendLine($"ISBN:{ISBN}");
// Creator行 - 即使为空也要输出
result.AppendLine($"creator:{Creator}");
// Contributor行 - 即使为空也要输出
result.AppendLine($"contributor:{Contributor}");
// IssuedDate行
result.AppendLine($"issuedDate:{IssuedDate}");
// Publisher行
result.AppendLine($"publisher:{Publisher}");
// Place行
result.AppendLine($"place:{Place}");
// Classification number行
result.AppendLine($"Classification number:{ClassificationNumber}");
// Page行
result.AppendLine($"page:{Page}");
// Table of contents
result.AppendLine("tableOfContents:");
foreach (var bookmark in TableOfContents)
{
if (!string.IsNullOrEmpty(bookmark.Title))
{
result.Append(bookmark.Title.Trim());
if (!string.IsNullOrEmpty(bookmark.Page))
{
// 注意使用14个短横线与需求示例一致
result.Append("---------------");
result.Append(bookmark.Page);
}
result.AppendLine("<br/>");
}
}
// Subject行
result.AppendLine($"subject:{Subject}");
// Date行 - 即使为空也要输出
result.AppendLine($"date:{Date}");
// Spatial行 - 即使为空也要输出
result.AppendLine($"spatial:{Spatial}");
// Other ISBN行 - 即使为空也要输出
result.AppendLine($"Other ISBN:{OtherISBN}");
// Other time行 - 即使为空也要输出
result.AppendLine($"Other time:{OtherTime}");
// URL行 - 即使为空也要输出
result.AppendLine($"url:{Url}");
return result.ToString();
}
}
}