diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs
index bf55a13f..89b1116e 100644
--- a/SabreTools.Data.Extensions/MetadataExtensions.cs
+++ b/SabreTools.Data.Extensions/MetadataExtensions.cs
@@ -258,18 +258,40 @@ namespace SabreTools.Data.Extensions
}
else if (self is Header selfHeader && clone is Header cloneHeader)
{
+ cloneHeader.Author = selfHeader.Author;
cloneHeader.BiosMode = selfHeader.BiosMode;
+ cloneHeader.Build = selfHeader.Build;
+ cloneHeader.Category = selfHeader.Category;
+ cloneHeader.Comment = selfHeader.Comment;
+ cloneHeader.Date = selfHeader.Date;
+ cloneHeader.DatVersion = selfHeader.DatVersion;
cloneHeader.Debug = selfHeader.Debug;
cloneHeader.Description = selfHeader.Description;
+ cloneHeader.Email = selfHeader.Email;
+ cloneHeader.EmulatorVersion = selfHeader.EmulatorVersion;
cloneHeader.ForceMerging = selfHeader.ForceMerging;
cloneHeader.ForceNodump = selfHeader.ForceNodump;
cloneHeader.ForcePacking = selfHeader.ForcePacking;
cloneHeader.ForceZipping = selfHeader.ForceZipping;
+ cloneHeader.Homepage = selfHeader.Homepage;
+ cloneHeader.Id = selfHeader.Id;
cloneHeader.LockBiosMode = selfHeader.LockBiosMode;
cloneHeader.LockRomMode = selfHeader.LockRomMode;
cloneHeader.LockSampleMode = selfHeader.LockSampleMode;
+ cloneHeader.MameConfig = selfHeader.MameConfig;
+ cloneHeader.Name = selfHeader.Name;
+ cloneHeader.Notes = selfHeader.Notes;
+ cloneHeader.Plugin = selfHeader.Plugin;
+ cloneHeader.RefName = selfHeader.RefName;
cloneHeader.RomMode = selfHeader.RomMode;
+ cloneHeader.RomTitle = selfHeader.RomTitle;
+ cloneHeader.RootDir = selfHeader.RootDir;
cloneHeader.SampleMode = selfHeader.SampleMode;
+ cloneHeader.System = selfHeader.System;
+ cloneHeader.Timestamp = selfHeader.Timestamp;
+ cloneHeader.Type = selfHeader.Type;
+ cloneHeader.Url = selfHeader.Url;
+ cloneHeader.Version = selfHeader.Version;
}
else if (self is Info selfInfo && clone is Info cloneInfo)
{
diff --git a/SabreTools.Data.Models/Metadata/Header.cs b/SabreTools.Data.Models/Metadata/Header.cs
index e933e9a6..31803fe3 100644
--- a/SabreTools.Data.Models/Metadata/Header.cs
+++ b/SabreTools.Data.Models/Metadata/Header.cs
@@ -8,14 +8,30 @@ namespace SabreTools.Data.Models.Metadata
{
#region Properties
+ public string? Author { get; set; }
+
/// (none|split|merged|nonmerged|fullmerged|device|full) "split"
public MergingFlag BiosMode { get; set; }
+ public string? Build { get; set; }
+
+ public string? Category { get; set; }
+
+ public string? Comment { get; set; }
+
+ public string? Date { get; set; }
+
+ public string? DatVersion { get; set; }
+
/// (yes|no) "no"
public bool? Debug { get; set; }
public string? Description { get; set; }
+ public string? Email { get; set; }
+
+ public string? EmulatorVersion { get; set; }
+
/// (none|split|merged|nonmerged|fullmerged|device|full) "split"
public MergingFlag ForceMerging { get; set; }
@@ -28,6 +44,10 @@ namespace SabreTools.Data.Models.Metadata
/// (yes|no) "yes"
public bool? ForceZipping { get; set; }
+ public string? Homepage { get; set; }
+
+ public string? Id { get; set; }
+
/// (yes|no) "no"
public bool? LockBiosMode { get; set; }
@@ -37,56 +57,48 @@ namespace SabreTools.Data.Models.Metadata
/// (yes|no) "no"
public bool? LockSampleMode { get; set; }
+ public string? MameConfig { get; set; }
+
public string? Name { get; set; }
+ public string? Notes { get; set; }
+
+ public string? Plugin { get; set; }
+
+ public string? RefName { get; set; }
+
/// (none|split|merged|nonmerged|fullmerged|device|full) "split"
public MergingFlag RomMode { get; set; }
+ public string? RomTitle { get; set; }
+
+ public string? RootDir { get; set; }
+
/// (none|split|merged|nonmerged|fullmerged|device|full) "split"
public MergingFlag SampleMode { get; set; }
+ public string? System { get; set; }
+
+ public string? Timestamp { get; set; }
+
+ public string? Type { get; set; }
+
+ public string? Url { get; set; }
+
+ public string? Version { get; set; }
+
#endregion
#region Keys
- /// string
- public const string AuthorKey = "author";
-
- /// string
- public const string BuildKey = "build";
-
/// TODO: This needs an internal model OR mapping to fields
/// CanOpen
[NoFilter]
public const string CanOpenKey = "canOpen";
- /// string
- public const string CategoryKey = "category";
-
- /// string
- public const string CommentKey = "comment";
-
- /// string
- public const string DateKey = "date";
-
- /// string
- public const string DatVersionKey = "datversion";
-
- /// string
- public const string EmailKey = "email";
-
- /// string
- public const string EmulatorVersionKey = "emulatorversion";
-
/// string, string[]
public const string HeaderKey = "header";
- /// string
- public const string HomepageKey = "homepage";
-
- /// string
- public const string IdKey = "id";
-
/// TODO: This needs an internal model OR mapping to fields
/// Search
[NoFilter]
@@ -100,29 +112,11 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string InfosKey = "infos";
- /// string
- public const string MameConfigKey = "mameconfig";
-
/// TODO: This needs an internal model OR mapping to fields
/// NewDat
[NoFilter]
public const string NewDatKey = "newDat";
- /// string
- public const string NotesKey = "notes";
-
- /// string
- public const string PluginKey = "plugin";
-
- /// string
- public const string RefNameKey = "refname";
-
- /// string
- public const string RomTitleKey = "romTitle";
-
- /// string
- public const string RootDirKey = "rootdir";
-
/// string
public const string SchemaLocationKey = "schemaLocation";
@@ -137,21 +131,6 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string SearchKey = "search";
- /// string
- public const string SystemKey = "system";
-
- /// string
- public const string TimestampKey = "timestamp";
-
- /// string
- public const string TypeKey = "type";
-
- /// string
- public const string UrlKey = "url";
-
- /// string
- public const string VersionKey = "version";
-
#endregion
}
}
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
index 74f5a646..7bbcd309 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
@@ -201,50 +201,50 @@ namespace SabreTools.Metadata.DatFiles.Test
return new Data.Models.Metadata.Header
{
- [Data.Models.Metadata.Header.AuthorKey] = "author",
+ Author = "author",
BiosMode = Data.Models.Metadata.MergingFlag.Merged,
- [Data.Models.Metadata.Header.BuildKey] = "build",
+ Build = "build",
[Data.Models.Metadata.Header.CanOpenKey] = canOpen,
- [Data.Models.Metadata.Header.CategoryKey] = "category",
- [Data.Models.Metadata.Header.CommentKey] = "comment",
- [Data.Models.Metadata.Header.DateKey] = "date",
- [Data.Models.Metadata.Header.DatVersionKey] = "datversion",
+ Category = "category",
+ Comment = "comment",
+ Date = "date",
+ DatVersion = "datversion",
Debug = true,
Description = "description",
- [Data.Models.Metadata.Header.EmailKey] = "email",
- [Data.Models.Metadata.Header.EmulatorVersionKey] = "emulatorversion",
+ Email = "email",
+ EmulatorVersion = "emulatorversion",
ForceMerging = Data.Models.Metadata.MergingFlag.Merged,
ForceNodump = Data.Models.Metadata.NodumpFlag.Required,
ForcePacking = Data.Models.Metadata.PackingFlag.Zip,
ForceZipping = true,
[Data.Models.Metadata.Header.HeaderKey] = "header",
- [Data.Models.Metadata.Header.HomepageKey] = "homepage",
- [Data.Models.Metadata.Header.IdKey] = "id",
+ Homepage = "homepage",
+ Id = "id",
[Data.Models.Metadata.Header.ImagesKey] = images,
[Data.Models.Metadata.Header.ImFolderKey] = "imfolder",
[Data.Models.Metadata.Header.InfosKey] = infos,
LockBiosMode = true,
LockRomMode = true,
LockSampleMode = true,
- [Data.Models.Metadata.Header.MameConfigKey] = "mameconfig",
+ MameConfig = "mameconfig",
Name = "name",
[Data.Models.Metadata.Header.NewDatKey] = newDat,
- [Data.Models.Metadata.Header.NotesKey] = "notes",
- [Data.Models.Metadata.Header.PluginKey] = "plugin",
- [Data.Models.Metadata.Header.RefNameKey] = "refname",
+ Notes = "notes",
+ Plugin = "plugin",
+ RefName = "refname",
RomMode = Data.Models.Metadata.MergingFlag.Merged,
- [Data.Models.Metadata.Header.RomTitleKey] = "romtitle",
- [Data.Models.Metadata.Header.RootDirKey] = "rootdir",
+ RomTitle = "romtitle",
+ RootDir = "rootdir",
SampleMode = Data.Models.Metadata.MergingFlag.Merged,
[Data.Models.Metadata.Header.SchemaLocationKey] = "schemalocation",
[Data.Models.Metadata.Header.ScreenshotsHeightKey] = "screenshotsheight",
[Data.Models.Metadata.Header.ScreenshotsWidthKey] = "screenshotsWidth",
[Data.Models.Metadata.Header.SearchKey] = search,
- [Data.Models.Metadata.Header.SystemKey] = "system",
- [Data.Models.Metadata.Header.TimestampKey] = "timestamp",
- [Data.Models.Metadata.Header.TypeKey] = "type",
- [Data.Models.Metadata.Header.UrlKey] = "url",
- [Data.Models.Metadata.Header.VersionKey] = "version",
+ System = "system",
+ Timestamp = "timestamp",
+ Type = "type",
+ Url = "url",
+ Version = "version",
};
}
@@ -1037,50 +1037,50 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateHeader(DatHeader datHeader)
{
- Assert.Equal("author", datHeader.ReadString(Data.Models.Metadata.Header.AuthorKey));
+ Assert.Equal("author", datHeader.Author);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.BiosMode);
- Assert.Equal("build", datHeader.ReadString(Data.Models.Metadata.Header.BuildKey));
+ Assert.Equal("build", datHeader.Build);
Assert.Equal("ext", datHeader.ReadString(Data.Models.Metadata.Header.CanOpenKey));
- Assert.Equal("category", datHeader.ReadString(Data.Models.Metadata.Header.CategoryKey));
- Assert.Equal("comment", datHeader.ReadString(Data.Models.Metadata.Header.CommentKey));
- Assert.Equal("date", datHeader.ReadString(Data.Models.Metadata.Header.DateKey));
- Assert.Equal("datversion", datHeader.ReadString(Data.Models.Metadata.Header.DatVersionKey));
+ Assert.Equal("category", datHeader.Category);
+ Assert.Equal("comment", datHeader.Comment);
+ Assert.Equal("date", datHeader.Date);
+ Assert.Equal("datversion", datHeader.DatVersion);
Assert.True(datHeader.Debug);
Assert.Equal("description", datHeader.Description);
- Assert.Equal("email", datHeader.ReadString(Data.Models.Metadata.Header.EmailKey));
- Assert.Equal("emulatorversion", datHeader.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey));
+ Assert.Equal("email", datHeader.Email);
+ Assert.Equal("emulatorversion", datHeader.EmulatorVersion);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.ForceMerging);
Assert.Equal(Data.Models.Metadata.NodumpFlag.Required, datHeader.ForceNodump);
Assert.Equal(Data.Models.Metadata.PackingFlag.Zip, datHeader.ForcePacking);
Assert.True(datHeader.ForceZipping);
Assert.Equal("header", datHeader.ReadString(Data.Models.Metadata.Header.HeaderKey));
- Assert.Equal("homepage", datHeader.ReadString(Data.Models.Metadata.Header.HomepageKey));
- Assert.Equal("id", datHeader.ReadString(Data.Models.Metadata.Header.IdKey));
+ Assert.Equal("homepage", datHeader.Homepage);
+ Assert.Equal("id", datHeader.Id);
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.ImagesKey));
Assert.Equal("imfolder", datHeader.ReadString(Data.Models.Metadata.Header.ImFolderKey));
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.InfosKey));
Assert.True(datHeader.LockBiosMode);
Assert.True(datHeader.LockRomMode);
Assert.True(datHeader.LockSampleMode);
- Assert.Equal("mameconfig", datHeader.ReadString(Data.Models.Metadata.Header.MameConfigKey));
+ Assert.Equal("mameconfig", datHeader.MameConfig);
Assert.Equal("name", datHeader.Name);
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.NewDatKey));
- Assert.Equal("notes", datHeader.ReadString(Data.Models.Metadata.Header.NotesKey));
- Assert.Equal("plugin", datHeader.ReadString(Data.Models.Metadata.Header.PluginKey));
- Assert.Equal("refname", datHeader.ReadString(Data.Models.Metadata.Header.RefNameKey));
+ Assert.Equal("notes", datHeader.Notes);
+ Assert.Equal("plugin", datHeader.Plugin);
+ Assert.Equal("refname", datHeader.RefName);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.RomMode);
- Assert.Equal("romtitle", datHeader.ReadString(Data.Models.Metadata.Header.RomTitleKey));
- Assert.Equal("rootdir", datHeader.ReadString(Data.Models.Metadata.Header.RootDirKey));
+ Assert.Equal("romtitle", datHeader.RomTitle);
+ Assert.Equal("rootdir", datHeader.RootDir);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.SampleMode);
Assert.Equal("schemalocation", datHeader.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
Assert.Equal("screenshotsheight", datHeader.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
Assert.Equal("screenshotsWidth", datHeader.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.SearchKey));
- Assert.Equal("system", datHeader.ReadString(Data.Models.Metadata.Header.SystemKey));
- Assert.Equal("timestamp", datHeader.ReadString(Data.Models.Metadata.Header.TimestampKey));
- Assert.Equal("type", datHeader.ReadString(Data.Models.Metadata.Header.TypeKey));
- Assert.Equal("url", datHeader.ReadString(Data.Models.Metadata.Header.UrlKey));
- Assert.Equal("version", datHeader.ReadString(Data.Models.Metadata.Header.VersionKey));
+ Assert.Equal("system", datHeader.System);
+ Assert.Equal("timestamp", datHeader.Timestamp);
+ Assert.Equal("type", datHeader.Type);
+ Assert.Equal("url", datHeader.Url);
+ Assert.Equal("version", datHeader.Version);
}
#pragma warning disable IDE0051
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
index edc3c678..9345937e 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
@@ -373,50 +373,50 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateMetadataHeader(Data.Models.Metadata.Header? header)
{
Assert.NotNull(header);
- Assert.Equal("author", header.ReadString(Data.Models.Metadata.Header.AuthorKey));
+ Assert.Equal("author", header.Author);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.BiosMode);
- Assert.Equal("build", header.ReadString(Data.Models.Metadata.Header.BuildKey));
+ Assert.Equal("build", header.Build);
Assert.NotNull(header.Read(Data.Models.Metadata.Header.CanOpenKey));
- Assert.Equal("category", header.ReadString(Data.Models.Metadata.Header.CategoryKey));
- Assert.Equal("comment", header.ReadString(Data.Models.Metadata.Header.CommentKey));
- Assert.Equal("date", header.ReadString(Data.Models.Metadata.Header.DateKey));
- Assert.Equal("datversion", header.ReadString(Data.Models.Metadata.Header.DatVersionKey));
+ Assert.Equal("category", header.Category);
+ Assert.Equal("comment", header.Comment);
+ Assert.Equal("date", header.Date);
+ Assert.Equal("datversion", header.DatVersion);
Assert.True(header.Debug);
Assert.Equal("description", header.Description);
- Assert.Equal("email", header.ReadString(Data.Models.Metadata.Header.EmailKey));
- Assert.Equal("emulatorversion", header.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey));
+ Assert.Equal("email", header.Email);
+ Assert.Equal("emulatorversion", header.EmulatorVersion);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.ForceMerging);
Assert.Equal(Data.Models.Metadata.NodumpFlag.Required, header.ForceNodump);
Assert.Equal(Data.Models.Metadata.PackingFlag.Zip, header.ForcePacking);
Assert.True(header.ForceZipping);
Assert.Equal("header", header.ReadString(Data.Models.Metadata.Header.HeaderKey));
- Assert.Equal("homepage", header.ReadString(Data.Models.Metadata.Header.HomepageKey));
- Assert.Equal("id", header.ReadString(Data.Models.Metadata.Header.IdKey));
+ Assert.Equal("homepage", header.Homepage);
+ Assert.Equal("id", header.Id);
Assert.NotNull(header.Read(Data.Models.Metadata.Header.ImagesKey));
Assert.Equal("imfolder", header.ReadString(Data.Models.Metadata.Header.ImFolderKey));
Assert.NotNull(header.Read(Data.Models.Metadata.Header.InfosKey));
Assert.True(header.LockBiosMode);
Assert.True(header.LockRomMode);
Assert.True(header.LockSampleMode);
- Assert.Equal("mameconfig", header.ReadString(Data.Models.Metadata.Header.MameConfigKey));
+ Assert.Equal("mameconfig", header.MameConfig);
Assert.Equal("name", header.Name);
Assert.NotNull(header.Read(Data.Models.Metadata.Header.NewDatKey));
- Assert.Equal("notes", header.ReadString(Data.Models.Metadata.Header.NotesKey));
- Assert.Equal("plugin", header.ReadString(Data.Models.Metadata.Header.PluginKey));
- Assert.Equal("refname", header.ReadString(Data.Models.Metadata.Header.RefNameKey));
+ Assert.Equal("notes", header.Notes);
+ Assert.Equal("plugin", header.Plugin);
+ Assert.Equal("refname", header.RefName);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.RomMode);
- Assert.Equal("romtitle", header.ReadString(Data.Models.Metadata.Header.RomTitleKey));
- Assert.Equal("rootdir", header.ReadString(Data.Models.Metadata.Header.RootDirKey));
+ Assert.Equal("romtitle", header.RomTitle);
+ Assert.Equal("rootdir", header.RootDir);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.SampleMode);
Assert.Equal("schemalocation", header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
Assert.Equal("screenshotsheight", header.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
Assert.Equal("screenshotsWidth", header.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
Assert.NotNull(header.Read(Data.Models.Metadata.Header.SearchKey));
- Assert.Equal("system", header.ReadString(Data.Models.Metadata.Header.SystemKey));
- Assert.Equal("timestamp", header.ReadString(Data.Models.Metadata.Header.TimestampKey));
- Assert.Equal("type", header.ReadString(Data.Models.Metadata.Header.TypeKey));
- Assert.Equal("url", header.ReadString(Data.Models.Metadata.Header.UrlKey));
- Assert.Equal("version", header.ReadString(Data.Models.Metadata.Header.VersionKey));
+ Assert.Equal("system", header.System);
+ Assert.Equal("timestamp", header.Timestamp);
+ Assert.Equal("type", header.Type);
+ Assert.Equal("url", header.Url);
+ Assert.Equal("version", header.Version);
}
private static void ValidateMetadataMachine(Data.Models.Metadata.Machine machine)
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.cs
index 19683978..0987c682 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.cs
@@ -115,7 +115,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = string.Empty;
datFile.Header.Description = string.Empty;
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, false);
@@ -130,7 +130,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = string.Empty;
datFile.Header.Description = string.Empty;
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, true);
@@ -145,7 +145,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = string.Empty;
datFile.Header.Description = "Description";
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, false);
@@ -160,7 +160,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = string.Empty;
datFile.Header.Description = "Description";
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, true);
@@ -175,7 +175,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = "Name";
datFile.Header.Description = string.Empty;
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, false);
@@ -190,7 +190,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = "Name";
datFile.Header.Description = string.Empty;
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, true);
@@ -205,7 +205,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = "Name";
datFile.Header.Description = "Description";
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, false);
@@ -220,7 +220,7 @@ namespace SabreTools.Metadata.DatFiles.Test
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = "Name ";
datFile.Header.Description = "Description ";
- datFile.Header.Write(Data.Models.Metadata.Header.DateKey, "1980-01-01");
+ datFile.Header.Date = "1980-01-01";
string path = Path.Combine("Fake", "Path", "Filename");
datFile.FillHeaderFromPath(path, true);
diff --git a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
index ba404243..d935a962 100644
--- a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
@@ -90,28 +90,28 @@ namespace SabreTools.Metadata.DatFiles
Header.Write(Data.Models.Metadata.Header.SearchKey, search);
// Selectively set all possible fields -- TODO: Figure out how to make this less manual
- if (Header.ReadString(Data.Models.Metadata.Header.AuthorKey) is null)
- Header.Write(Data.Models.Metadata.Header.AuthorKey, header.ReadString(Data.Models.Metadata.Header.AuthorKey));
+ if (Header.Author is null)
+ Header.Author = header.Author;
if (Header.BiosMode == MergingFlag.None)
Header.BiosMode = header.BiosMode;
- if (Header.ReadString(Data.Models.Metadata.Header.BuildKey) is null)
- Header.Write(Data.Models.Metadata.Header.BuildKey, header.ReadString(Data.Models.Metadata.Header.BuildKey));
- if (Header.ReadString(Data.Models.Metadata.Header.CategoryKey) is null)
- Header.Write(Data.Models.Metadata.Header.CategoryKey, header.ReadString(Data.Models.Metadata.Header.CategoryKey));
- if (Header.ReadString(Data.Models.Metadata.Header.CommentKey) is null)
- Header.Write(Data.Models.Metadata.Header.CommentKey, header.ReadString(Data.Models.Metadata.Header.CommentKey));
- if (Header.ReadString(Data.Models.Metadata.Header.DateKey) is null)
- Header.Write(Data.Models.Metadata.Header.DateKey, header.ReadString(Data.Models.Metadata.Header.DateKey));
- if (Header.ReadString(Data.Models.Metadata.Header.DatVersionKey) is null)
- Header.Write(Data.Models.Metadata.Header.DatVersionKey, header.ReadString(Data.Models.Metadata.Header.DatVersionKey));
+ if (Header.Build is null)
+ Header.Build = header.Build;
+ if (Header.Category is null)
+ Header.Category = header.Category;
+ if (Header.Comment is null)
+ Header.Comment = header.Comment;
+ if (Header.Date is null)
+ Header.Date = header.Date;
+ if (Header.DatVersion is null)
+ Header.DatVersion = header.DatVersion;
if (Header.Debug is null)
Header.Debug = header.Debug;
if (Header.Description is null)
Header.Description = header.Description;
- if (Header.ReadString(Data.Models.Metadata.Header.EmailKey) is null)
- Header.Write(Data.Models.Metadata.Header.EmailKey, header.ReadString(Data.Models.Metadata.Header.EmailKey));
- if (Header.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey) is null)
- Header.Write(Data.Models.Metadata.Header.EmulatorVersionKey, header.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey));
+ if (Header.Email is null)
+ Header.Email = header.Email;
+ if (Header.EmulatorVersion is null)
+ Header.EmulatorVersion = header.EmulatorVersion;
if (Header.ForceMerging == MergingFlag.None)
Header.ForceMerging = header.ForceMerging;
if (Header.ForceNodump == NodumpFlag.None)
@@ -122,10 +122,10 @@ namespace SabreTools.Metadata.DatFiles
Header.ForceZipping = header.ForceZipping;
if (Header.ReadString(Data.Models.Metadata.Header.HeaderKey) is null)
Header.Write(Data.Models.Metadata.Header.HeaderKey, header.ReadString(Data.Models.Metadata.Header.HeaderKey));
- if (Header.ReadString(Data.Models.Metadata.Header.HomepageKey) is null)
- Header.Write(Data.Models.Metadata.Header.HomepageKey, header.ReadString(Data.Models.Metadata.Header.HomepageKey));
- if (Header.ReadString(Data.Models.Metadata.Header.IdKey) is null)
- Header.Write(Data.Models.Metadata.Header.IdKey, header.ReadString(Data.Models.Metadata.Header.IdKey));
+ if (Header.Homepage is null)
+ Header.Homepage = header.Homepage;
+ if (Header.Id is null)
+ Header.Id = header.Id;
if (Header.ReadString(Data.Models.Metadata.Header.ImFolderKey) is null)
Header.Write(Data.Models.Metadata.Header.ImFolderKey, header.ReadString(Data.Models.Metadata.Header.ImFolderKey));
if (Header.LockBiosMode is null)
@@ -134,22 +134,22 @@ namespace SabreTools.Metadata.DatFiles
Header.LockRomMode = header.LockRomMode;
if (Header.LockSampleMode is null)
Header.LockSampleMode = header.LockSampleMode;
- if (Header.ReadString(Data.Models.Metadata.Header.MameConfigKey) is null)
- Header.Write(Data.Models.Metadata.Header.MameConfigKey, header.ReadString(Data.Models.Metadata.Header.MameConfigKey));
+ if (Header.MameConfig is null)
+ Header.MameConfig = header.MameConfig;
if (Header.Name is null)
Header.Name = header.Name;
- if (Header.ReadString(Data.Models.Metadata.Header.NotesKey) is null)
- Header.Write(Data.Models.Metadata.Header.NotesKey, header.ReadString(Data.Models.Metadata.Header.NotesKey));
- if (Header.ReadString(Data.Models.Metadata.Header.PluginKey) is null)
- Header.Write(Data.Models.Metadata.Header.PluginKey, header.ReadString(Data.Models.Metadata.Header.PluginKey));
- if (Header.ReadString(Data.Models.Metadata.Header.RefNameKey) is null)
- Header.Write(Data.Models.Metadata.Header.RefNameKey, header.ReadString(Data.Models.Metadata.Header.RefNameKey));
+ if (Header.Notes is null)
+ Header.Notes = header.Notes;
+ if (Header.Plugin is null)
+ Header.Plugin = header.Plugin;
+ if (Header.RefName is null)
+ Header.RefName = header.RefName;
if (Header.RomMode == MergingFlag.None)
Header.RomMode = header.RomMode;
- if (Header.ReadString(Data.Models.Metadata.Header.RomTitleKey) is null)
- Header.Write(Data.Models.Metadata.Header.RomTitleKey, header.ReadString(Data.Models.Metadata.Header.RomTitleKey));
- if (Header.ReadString(Data.Models.Metadata.Header.RootDirKey) is null)
- Header.Write(Data.Models.Metadata.Header.RootDirKey, header.ReadString(Data.Models.Metadata.Header.RootDirKey));
+ if (Header.RomTitle is null)
+ Header.RomTitle = header.RomTitle;
+ if (Header.RootDir is null)
+ Header.RootDir = header.RootDir;
if (Header.SampleMode == MergingFlag.None)
Header.SampleMode = header.SampleMode;
if (Header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey) is null)
@@ -158,22 +158,22 @@ namespace SabreTools.Metadata.DatFiles
Header.Write(Data.Models.Metadata.Header.ScreenshotsHeightKey, header.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
if (Header.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey) is null)
Header.Write(Data.Models.Metadata.Header.ScreenshotsWidthKey, header.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
- if (Header.ReadString(Data.Models.Metadata.Header.SystemKey) is null)
- Header.Write(Data.Models.Metadata.Header.SystemKey, header.ReadString(Data.Models.Metadata.Header.SystemKey));
- if (Header.ReadString(Data.Models.Metadata.Header.TimestampKey) is null)
- Header.Write(Data.Models.Metadata.Header.TimestampKey, header.ReadString(Data.Models.Metadata.Header.TimestampKey));
- if (Header.ReadString(Data.Models.Metadata.Header.TypeKey) is null)
- Header.Write(Data.Models.Metadata.Header.TypeKey, header.ReadString(Data.Models.Metadata.Header.TypeKey));
- if (Header.ReadString(Data.Models.Metadata.Header.UrlKey) is null)
- Header.Write(Data.Models.Metadata.Header.UrlKey, header.ReadString(Data.Models.Metadata.Header.UrlKey));
- if (Header.ReadString(Data.Models.Metadata.Header.VersionKey) is null)
- Header.Write(Data.Models.Metadata.Header.VersionKey, header.ReadString(Data.Models.Metadata.Header.VersionKey));
+ if (Header.System is null)
+ Header.System = header.System;
+ if (Header.Timestamp is null)
+ Header.Timestamp = header.Timestamp;
+ if (Header.Type is null)
+ Header.Type = header.Type;
+ if (Header.Url is null)
+ Header.Url = header.Url;
+ if (Header.Version is null)
+ Header.Version = header.Version;
// Handle implied SuperDAT
if (Header.Name?.Contains(" - SuperDAT") == true && keep)
{
- if (Header.ReadString(Data.Models.Metadata.Header.TypeKey) is null)
- Header.Write(Data.Models.Metadata.Header.TypeKey, "SuperDAT");
+ if (Header.Type is null)
+ Header.Type = "SuperDAT";
}
}
diff --git a/SabreTools.Metadata.DatFiles/DatFile.cs b/SabreTools.Metadata.DatFiles/DatFile.cs
index ebcfa269..6ce84666 100644
--- a/SabreTools.Metadata.DatFiles/DatFile.cs
+++ b/SabreTools.Metadata.DatFiles/DatFile.cs
@@ -97,7 +97,7 @@ namespace SabreTools.Metadata.DatFiles
// Get the header strings
string? name = Header.Name;
string? description = Header.Description;
- string? date = Header.ReadString(Data.Models.Metadata.Header.DateKey);
+ string? date = Header.Date;
// If the description is defined but not the name, set the name from the description
if (string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(description))
diff --git a/SabreTools.Metadata.DatFiles/DatHeader.cs b/SabreTools.Metadata.DatFiles/DatHeader.cs
index 0a42f5ab..a1de654f 100644
--- a/SabreTools.Metadata.DatFiles/DatHeader.cs
+++ b/SabreTools.Metadata.DatFiles/DatHeader.cs
@@ -31,12 +31,24 @@ namespace SabreTools.Metadata.DatFiles
#region Fields
+ public string? Author
+ {
+ get => _internal.Author;
+ set => _internal.Author = value;
+ }
+
public MergingFlag BiosMode
{
get => _internal.BiosMode;
set => _internal.BiosMode = value;
}
+ public string? Build
+ {
+ get => _internal.Build;
+ set => _internal.Build = value;
+ }
+
[JsonIgnore]
public bool CanOpenSpecified
{
@@ -47,6 +59,30 @@ namespace SabreTools.Metadata.DatFiles
}
}
+ public string? Category
+ {
+ get => _internal.Category;
+ set => _internal.Category = value;
+ }
+
+ public string? Comment
+ {
+ get => _internal.Comment;
+ set => _internal.Comment = value;
+ }
+
+ public string? Date
+ {
+ get => _internal.Date;
+ set => _internal.Date = value;
+ }
+
+ public string? DatVersion
+ {
+ get => _internal.DatVersion;
+ set => _internal.DatVersion = value;
+ }
+
public bool? Debug
{
get => _internal.Debug;
@@ -59,6 +95,18 @@ namespace SabreTools.Metadata.DatFiles
set => _internal.Description = value;
}
+ public string? Email
+ {
+ get => _internal.Email;
+ set => _internal.Email = value;
+ }
+
+ public string? EmulatorVersion
+ {
+ get => _internal.EmulatorVersion;
+ set => _internal.EmulatorVersion = value;
+ }
+
public MergingFlag ForceMerging
{
get => _internal.ForceMerging;
@@ -83,6 +131,18 @@ namespace SabreTools.Metadata.DatFiles
set => _internal.ForceZipping = value;
}
+ public string? Homepage
+ {
+ get => _internal.Homepage;
+ set => _internal.Homepage = value;
+ }
+
+ public string? Id
+ {
+ get => _internal.Id;
+ set => _internal.Id = value;
+ }
+
[JsonIgnore]
public bool ImagesSpecified
{
@@ -119,6 +179,12 @@ namespace SabreTools.Metadata.DatFiles
set => _internal.LockSampleMode = value;
}
+ public string? MameConfig
+ {
+ get => _internal.MameConfig;
+ set => _internal.MameConfig = value;
+ }
+
public string? Name
{
get => _internal.Name;
@@ -134,12 +200,42 @@ namespace SabreTools.Metadata.DatFiles
}
}
+ public string? Notes
+ {
+ get => _internal.Notes;
+ set => _internal.Notes = value;
+ }
+
+ public string? Plugin
+ {
+ get => _internal.Plugin;
+ set => _internal.Plugin = value;
+ }
+
+ public string? RefName
+ {
+ get => _internal.RefName;
+ set => _internal.RefName = value;
+ }
+
public MergingFlag RomMode
{
get => _internal.RomMode;
set => _internal.RomMode = value;
}
+ public string? RomTitle
+ {
+ get => _internal.RomTitle;
+ set => _internal.RomTitle = value;
+ }
+
+ public string? RootDir
+ {
+ get => _internal.RootDir;
+ set => _internal.RootDir = value;
+ }
+
public MergingFlag SampleMode
{
get => _internal.SampleMode;
@@ -155,6 +251,36 @@ namespace SabreTools.Metadata.DatFiles
}
}
+ public string? System
+ {
+ get => _internal.System;
+ set => _internal.System = value;
+ }
+
+ public string? Timestamp
+ {
+ get => _internal.Timestamp;
+ set => _internal.Timestamp = value;
+ }
+
+ public string? Type
+ {
+ get => _internal.Type;
+ set => _internal.Type = value;
+ }
+
+ public string? Url
+ {
+ get => _internal.Url;
+ set => _internal.Url = value;
+ }
+
+ public string? Version
+ {
+ get => _internal.Version;
+ set => _internal.Version = value;
+ }
+
#endregion
#region Constructors
diff --git a/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs b/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs
index 6175d740..677968b5 100644
--- a/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs
+++ b/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs
@@ -384,7 +384,7 @@ namespace SabreTools.Metadata.DatFiles.Formats
// TODO: Enable No-Intro doctype writing instead of Logiqx
// Only write the doctype if we don't have No-Intro data
bool success;
- if (string.IsNullOrEmpty(Header.ReadString(Data.Models.Metadata.Header.IdKey)))
+ if (string.IsNullOrEmpty(Header.Id))
success = new Serialization.Writers.Logiqx().SerializeFile(datafile, outfile);
else
success = new Serialization.Writers.Logiqx().SerializeFile(datafile, outfile);
diff --git a/SabreTools.Metadata.Filter.Test/FilterRunnerTests.cs b/SabreTools.Metadata.Filter.Test/FilterRunnerTests.cs
index f80ddb49..29e258fe 100644
--- a/SabreTools.Metadata.Filter.Test/FilterRunnerTests.cs
+++ b/SabreTools.Metadata.Filter.Test/FilterRunnerTests.cs
@@ -33,7 +33,7 @@ namespace SabreTools.Metadata.Filter.Test
[Fact]
public void Header_Null_False()
{
- var header = new Header { [Header.AuthorKey] = null };
+ var header = new Header { Author = null };
bool actual = _filterRunner.Run(header);
Assert.False(actual);
}
@@ -41,7 +41,7 @@ namespace SabreTools.Metadata.Filter.Test
[Fact]
public void Header_Empty_False()
{
- var header = new Header { [Header.AuthorKey] = "" };
+ var header = new Header { Author = "" };
bool actual = _filterRunner.Run(header);
Assert.False(actual);
}
@@ -49,7 +49,7 @@ namespace SabreTools.Metadata.Filter.Test
[Fact]
public void Header_Incorrect_False()
{
- var header = new Header { [Header.AuthorKey] = "NO_MATCH" };
+ var header = new Header { Author = "NO_MATCH" };
bool actual = _filterRunner.Run(header);
Assert.False(actual);
}
@@ -57,7 +57,7 @@ namespace SabreTools.Metadata.Filter.Test
[Fact]
public void Header_Correct_True()
{
- var header = new Header { [Header.AuthorKey] = "auth" };
+ var header = new Header { Author = "auth" };
bool actual = _filterRunner.Run(header);
Assert.True(actual);
}
diff --git a/SabreTools.Metadata.Filter/FilterObject.cs b/SabreTools.Metadata.Filter/FilterObject.cs
index 49f54193..e3ab5156 100644
--- a/SabreTools.Metadata.Filter/FilterObject.cs
+++ b/SabreTools.Metadata.Filter/FilterObject.cs
@@ -527,15 +527,39 @@ namespace SabreTools.Metadata.Filter
checkValue = item.Value;
return true;
+ case Header item when fieldName == "author":
+ checkValue = item.Author;
+ return true;
case Header item when fieldName == "biosmode":
checkValue = item.BiosMode.AsStringValue();
return true;
+ case Header item when fieldName == "build":
+ checkValue = item.Build;
+ return true;
+ case Header item when fieldName == "category":
+ checkValue = item.Category;
+ return true;
+ case Header item when fieldName == "comment":
+ checkValue = item.Comment;
+ return true;
+ case Header item when fieldName == "date":
+ checkValue = item.Date;
+ return true;
+ case Header item when fieldName == "datversion":
+ checkValue = item.DatVersion;
+ return true;
case Header item when fieldName == "debug":
checkValue = item.Debug.FromYesNo();
return true;
case Header item when fieldName == "description":
checkValue = item.Description;
return true;
+ case Header item when fieldName == "email":
+ checkValue = item.Email;
+ return true;
+ case Header item when fieldName == "emulatorversion":
+ checkValue = item.EmulatorVersion;
+ return true;
case Header item when fieldName == "forcemerging":
checkValue = item.ForceMerging.AsStringValue();
return true;
@@ -548,6 +572,12 @@ namespace SabreTools.Metadata.Filter
case Header item when fieldName == "forcezipping":
checkValue = item.ForceZipping.FromYesNo();
return true;
+ case Header item when fieldName == "homepage":
+ checkValue = item.Homepage;
+ return true;
+ case Header item when fieldName == "id":
+ checkValue = item.Id;
+ return true;
case Header item when fieldName == "lockbiosmode":
checkValue = item.LockBiosMode.FromYesNo();
return true;
@@ -557,12 +587,45 @@ namespace SabreTools.Metadata.Filter
case Header item when fieldName == "locksamplemode":
checkValue = item.LockSampleMode.FromYesNo();
return true;
+ case Header item when fieldName == "mameconfig":
+ checkValue = item.MameConfig;
+ return true;
+ case Header item when fieldName == "notes":
+ checkValue = item.Notes;
+ return true;
+ case Header item when fieldName == "plugin":
+ checkValue = item.Plugin;
+ return true;
+ case Header item when fieldName == "refname":
+ checkValue = item.RefName;
+ return true;
case Header item when fieldName == "rommode":
checkValue = item.RomMode.AsStringValue();
return true;
+ case Header item when fieldName == "romtitle":
+ checkValue = item.RomTitle;
+ return true;
+ case Header item when fieldName == "rootdir":
+ checkValue = item.RootDir;
+ return true;
case Header item when fieldName == "samplemode":
checkValue = item.SampleMode.AsStringValue();
return true;
+ case Header item when fieldName == "system":
+ checkValue = item.System;
+ return true;
+ case Header item when fieldName == "timestamp":
+ checkValue = item.Timestamp;
+ return true;
+ case Header item when fieldName == "type":
+ checkValue = item.Timestamp;
+ return true;
+ case Header item when fieldName == "url":
+ checkValue = item.Url;
+ return true;
+ case Header item when fieldName == "version":
+ checkValue = item.Version;
+ return true;
case Info item when fieldName == "value":
checkValue = item.Value;
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
index 940c75f6..24a7ed8f 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
@@ -45,16 +45,16 @@ namespace SabreTools.Serialization.CrossModel
{
Name = item.Name,
Description = item.Description,
- RootDir = item.ReadString(Data.Models.Metadata.Header.RootDirKey),
- Category = item.ReadString(Data.Models.Metadata.Header.CategoryKey),
- Version = item.ReadString(Data.Models.Metadata.Header.VersionKey),
- Date = item.ReadString(Data.Models.Metadata.Header.DateKey),
- Author = item.ReadString(Data.Models.Metadata.Header.AuthorKey),
- Homepage = item.ReadString(Data.Models.Metadata.Header.HomepageKey),
- Url = item.ReadString(Data.Models.Metadata.Header.UrlKey),
- Comment = item.ReadString(Data.Models.Metadata.Header.CommentKey),
+ RootDir = item.RootDir,
+ Category = item.Category,
+ Version = item.Version,
+ Date = item.Date,
+ Author = item.Author,
+ Homepage = item.Homepage,
+ Url = item.Url,
+ Comment = item.Comment,
Header = item.ReadString(Data.Models.Metadata.Header.HeaderKey),
- Type = item.ReadString(Data.Models.Metadata.Header.TypeKey),
+ Type = item.Type,
ForceMerging = item.ForceMerging,
ForceZipping = item.ForceZipping,
ForcePacking = item.ForcePacking,
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
index 70807e57..3e3a1b30 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
@@ -37,16 +37,16 @@ namespace SabreTools.Serialization.CrossModel
{
Name = item.Name,
Description = item.Description,
- [Data.Models.Metadata.Header.RootDirKey] = item.RootDir,
- [Data.Models.Metadata.Header.CategoryKey] = item.Category,
- [Data.Models.Metadata.Header.VersionKey] = item.Version,
- [Data.Models.Metadata.Header.DateKey] = item.Date,
- [Data.Models.Metadata.Header.AuthorKey] = item.Author,
- [Data.Models.Metadata.Header.HomepageKey] = item.Homepage,
- [Data.Models.Metadata.Header.UrlKey] = item.Url,
- [Data.Models.Metadata.Header.CommentKey] = item.Comment,
+ RootDir = item.RootDir,
+ Category = item.Category,
+ Version = item.Version,
+ Date = item.Date,
+ Author = item.Author,
+ Homepage = item.Homepage,
+ Url = item.Url,
+ Comment = item.Comment,
[Data.Models.Metadata.Header.HeaderKey] = item.Header,
- [Data.Models.Metadata.Header.TypeKey] = item.Type,
+ Type = item.Type,
ForceMerging = item.ForceMerging,
ForceZipping = item.ForceZipping,
ForcePacking = item.ForcePacking,
diff --git a/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs b/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs
index 9e949b31..2192f6bf 100644
--- a/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs
@@ -33,11 +33,11 @@ namespace SabreTools.Serialization.CrossModel
{
Name = item.Name,
Description = item.Description,
- Version = item.ReadString(Data.Models.Metadata.Header.VersionKey),
- Date = item.ReadString(Data.Models.Metadata.Header.DateKey),
- Author = item.ReadString(Data.Models.Metadata.Header.AuthorKey),
- Homepage = item.ReadString(Data.Models.Metadata.Header.HomepageKey),
- Comment = item.ReadString(Data.Models.Metadata.Header.CommentKey),
+ Version = item.Version,
+ Date = item.Date,
+ Author = item.Author,
+ Homepage = item.Homepage,
+ Comment = item.Comment,
};
return dosCenter;
}
diff --git a/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs b/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs
index 84fabfa2..2fa7c5d2 100644
--- a/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs
@@ -34,11 +34,11 @@ namespace SabreTools.Serialization.CrossModel
{
Name = item.Name,
Description = item.Description,
- [Data.Models.Metadata.Header.VersionKey] = item.Version,
- [Data.Models.Metadata.Header.DateKey] = item.Date,
- [Data.Models.Metadata.Header.AuthorKey] = item.Author,
- [Data.Models.Metadata.Header.HomepageKey] = item.Homepage,
- [Data.Models.Metadata.Header.CommentKey] = item.Comment,
+ Version = item.Version,
+ Date = item.Date,
+ Author = item.Author,
+ Homepage = item.Homepage,
+ Comment = item.Comment,
};
return header;
}
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
index 9cab05a1..e36a8a08 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
@@ -28,9 +28,9 @@ namespace SabreTools.Serialization.CrossModel
{
var mame = new Mame
{
- Build = item.ReadString(Data.Models.Metadata.Header.BuildKey),
+ Build = item.Build,
Debug = item.Debug,
- MameConfig = item.ReadString(Data.Models.Metadata.Header.MameConfigKey),
+ MameConfig = item.MameConfig,
};
return mame;
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
index d15be86f..6cd096b6 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
@@ -32,9 +32,9 @@ namespace SabreTools.Serialization.CrossModel
{
var header = new Data.Models.Metadata.Header
{
- [Data.Models.Metadata.Header.BuildKey] = item.Build,
+ Build = item.Build,
Debug = item.Debug,
- [Data.Models.Metadata.Header.MameConfigKey] = item.MameConfig,
+ MameConfig = item.MameConfig,
};
return header;
}
diff --git a/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs b/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs
index baa62d3e..6c2ed3d7 100644
--- a/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs
@@ -21,7 +21,7 @@ namespace SabreTools.Serialization.CrossModel
var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
if (header is not null)
{
- datafile.Build = header.ReadString(Data.Models.Metadata.Header.BuildKey);
+ datafile.Build = header.Build;
datafile.Debug = header.Debug;
datafile.SchemaLocation = header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey);
datafile.Header = ConvertHeaderFromInternalModel(header);
@@ -41,19 +41,19 @@ namespace SabreTools.Serialization.CrossModel
{
var header = new Header
{
- Id = item.ReadString(Data.Models.Metadata.Header.IdKey),
+ Id = item.Id,
Name = item.Name,
Description = item.Description,
- RootDir = item.ReadString(Data.Models.Metadata.Header.RootDirKey),
- Category = item.ReadString(Data.Models.Metadata.Header.CategoryKey),
- Version = item.ReadString(Data.Models.Metadata.Header.VersionKey),
- Date = item.ReadString(Data.Models.Metadata.Header.DateKey),
- Author = item.ReadString(Data.Models.Metadata.Header.AuthorKey),
- Email = item.ReadString(Data.Models.Metadata.Header.EmailKey),
- Homepage = item.ReadString(Data.Models.Metadata.Header.HomepageKey),
- Url = item.ReadString(Data.Models.Metadata.Header.UrlKey),
- Comment = item.ReadString(Data.Models.Metadata.Header.CommentKey),
- Type = item.ReadString(Data.Models.Metadata.Header.TypeKey),
+ RootDir = item.RootDir,
+ Category = item.Category,
+ Version = item.Version,
+ Date = item.Date,
+ Author = item.Author,
+ Email = item.Email,
+ Homepage = item.Homepage,
+ Url = item.Url,
+ Comment = item.Comment,
+ Type = item.Type,
};
string? headerVal = item.ReadString(Data.Models.Metadata.Header.HeaderKey);
@@ -77,7 +77,7 @@ namespace SabreTools.Serialization.CrossModel
header.ClrMamePro.ForcePacking = forcePacking;
}
- string? plugin = item.ReadString(Data.Models.Metadata.Header.PluginKey);
+ string? plugin = item.Plugin;
Data.Models.Metadata.MergingFlag romMode = item.RomMode;
Data.Models.Metadata.MergingFlag biosMode = item.BiosMode;
Data.Models.Metadata.MergingFlag sampleMode = item.SampleMode;
diff --git a/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs b/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs
index 21cfb164..ef4a60ae 100644
--- a/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs
@@ -39,7 +39,7 @@ namespace SabreTools.Serialization.CrossModel
{
var header = item.Header is not null ? ConvertHeaderToInternalModel(item.Header) : [];
- header[Data.Models.Metadata.Header.BuildKey] = item.Build;
+ header.Build = item.Build;
header.Debug = item.Debug;
header[Data.Models.Metadata.Header.SchemaLocationKey] = item.SchemaLocation;
@@ -53,19 +53,19 @@ namespace SabreTools.Serialization.CrossModel
{
var header = new Data.Models.Metadata.Header
{
- [Data.Models.Metadata.Header.IdKey] = item.Id,
+ Id = item.Id,
Name = item.Name,
Description = item.Description,
- [Data.Models.Metadata.Header.RootDirKey] = item.RootDir,
- [Data.Models.Metadata.Header.CategoryKey] = item.Category,
- [Data.Models.Metadata.Header.VersionKey] = item.Version,
- [Data.Models.Metadata.Header.DateKey] = item.Date,
- [Data.Models.Metadata.Header.AuthorKey] = item.Author,
- [Data.Models.Metadata.Header.EmailKey] = item.Email,
- [Data.Models.Metadata.Header.HomepageKey] = item.Homepage,
- [Data.Models.Metadata.Header.UrlKey] = item.Url,
- [Data.Models.Metadata.Header.CommentKey] = item.Comment,
- [Data.Models.Metadata.Header.TypeKey] = item.Type,
+ RootDir = item.RootDir,
+ Category = item.Category,
+ Version = item.Version,
+ Date = item.Date,
+ Author = item.Author,
+ Email = item.Email,
+ Homepage = item.Homepage,
+ Url = item.Url,
+ Comment = item.Comment,
+ Type = item.Type,
};
if (item.ClrMamePro is not null)
@@ -78,7 +78,7 @@ namespace SabreTools.Serialization.CrossModel
if (item.RomCenter is not null)
{
- header[Data.Models.Metadata.Header.PluginKey] = item.RomCenter.Plugin;
+ header.Plugin = item.RomCenter.Plugin;
header.RomMode = item.RomCenter.RomMode;
header.BiosMode = item.RomCenter.BiosMode;
header.SampleMode = item.RomCenter.SampleMode;
diff --git a/SabreTools.Serialization.CrossModel/M1.Deserializer.cs b/SabreTools.Serialization.CrossModel/M1.Deserializer.cs
index fed470ee..224eecdd 100644
--- a/SabreTools.Serialization.CrossModel/M1.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/M1.Deserializer.cs
@@ -27,7 +27,7 @@ namespace SabreTools.Serialization.CrossModel
{
var m1 = new Data.Models.Listxml.M1
{
- Version = item.ReadString(Data.Models.Metadata.Header.VersionKey),
+ Version = item.Version,
};
return m1;
}
diff --git a/SabreTools.Serialization.CrossModel/M1.Serializer.cs b/SabreTools.Serialization.CrossModel/M1.Serializer.cs
index fb9bd468..4f5cc631 100644
--- a/SabreTools.Serialization.CrossModel/M1.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/M1.Serializer.cs
@@ -31,7 +31,7 @@ namespace SabreTools.Serialization.CrossModel
{
var header = new Data.Models.Metadata.Header
{
- [Data.Models.Metadata.Header.VersionKey] = item.Version,
+ Version = item.Version,
};
return header;
}
diff --git a/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs b/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs
index faf51440..b9868ff1 100644
--- a/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs
@@ -27,7 +27,7 @@ namespace SabreTools.Serialization.CrossModel
{
var m1 = new Data.Models.Listxml.Mess
{
- Version = item.ReadString(Data.Models.Metadata.Header.VersionKey),
+ Version = item.Version,
};
return m1;
}
diff --git a/SabreTools.Serialization.CrossModel/Mess.Serializer.cs b/SabreTools.Serialization.CrossModel/Mess.Serializer.cs
index b35d23a6..05472a90 100644
--- a/SabreTools.Serialization.CrossModel/Mess.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Mess.Serializer.cs
@@ -31,7 +31,7 @@ namespace SabreTools.Serialization.CrossModel
{
var header = new Data.Models.Metadata.Header
{
- [Data.Models.Metadata.Header.VersionKey] = item.Version,
+ Version = item.Version,
};
return header;
}
diff --git a/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs b/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
index dd7199e8..554073a1 100644
--- a/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
@@ -38,29 +38,29 @@ namespace SabreTools.Serialization.CrossModel
if (item.Name is not null
|| item.ContainsKey(Data.Models.Metadata.Header.ImFolderKey)
- || item.ContainsKey(Data.Models.Metadata.Header.DatVersionKey)
- || item.ContainsKey(Data.Models.Metadata.Header.SystemKey)
+ || item.DatVersion != null
+ || item.System != null
|| item.ContainsKey(Data.Models.Metadata.Header.ScreenshotsWidthKey)
|| item.ContainsKey(Data.Models.Metadata.Header.ScreenshotsHeightKey)
|| item.ContainsKey(Data.Models.Metadata.Header.InfosKey)
|| item.ContainsKey(Data.Models.Metadata.Header.CanOpenKey)
|| item.ContainsKey(Data.Models.Metadata.Header.NewDatKey)
|| item.ContainsKey(Data.Models.Metadata.Header.SearchKey)
- || item.ContainsKey(Data.Models.Metadata.Header.RomTitleKey))
+ || item.RomTitle != null)
{
dat.Configuration = new Configuration
{
DatName = item.Name,
ImFolder = item.ReadString(Data.Models.Metadata.Header.ImFolderKey),
- DatVersion = item.ReadString(Data.Models.Metadata.Header.DatVersionKey),
- System = item.ReadString(Data.Models.Metadata.Header.SystemKey),
+ DatVersion = item.DatVersion,
+ System = item.System,
ScreenshotsWidth = item.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey),
ScreenshotsHeight = item.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey),
Infos = item.Read(Data.Models.Metadata.Header.InfosKey),
CanOpen = item.Read(Data.Models.Metadata.Header.CanOpenKey),
NewDat = item.Read(Data.Models.Metadata.Header.NewDatKey),
Search = item.Read(Data.Models.Metadata.Header.SearchKey),
- RomTitle = item.ReadString(Data.Models.Metadata.Header.RomTitleKey),
+ RomTitle = item.RomTitle,
};
}
diff --git a/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs b/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
index c8032e8d..70436b2f 100644
--- a/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
@@ -39,15 +39,15 @@ namespace SabreTools.Serialization.CrossModel
{
header.Name = item.Configuration.DatName;
header[Data.Models.Metadata.Header.ImFolderKey] = item.Configuration.ImFolder;
- header[Data.Models.Metadata.Header.DatVersionKey] = item.Configuration.DatVersion;
- header[Data.Models.Metadata.Header.SystemKey] = item.Configuration.System;
+ header.DatVersion = item.Configuration.DatVersion;
+ header.System = item.Configuration.System;
header[Data.Models.Metadata.Header.ScreenshotsWidthKey] = item.Configuration.ScreenshotsWidth;
header[Data.Models.Metadata.Header.ScreenshotsHeightKey] = item.Configuration.ScreenshotsHeight;
header[Data.Models.Metadata.Header.InfosKey] = item.Configuration.Infos;
header[Data.Models.Metadata.Header.CanOpenKey] = item.Configuration.CanOpen;
header[Data.Models.Metadata.Header.NewDatKey] = item.Configuration.NewDat;
header[Data.Models.Metadata.Header.SearchKey] = item.Configuration.Search;
- header[Data.Models.Metadata.Header.RomTitleKey] = item.Configuration.RomTitle;
+ header.RomTitle = item.Configuration.RomTitle;
}
if (item.GUI is not null)
diff --git a/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs b/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs
index bbfc7d76..3572044c 100644
--- a/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs
@@ -28,7 +28,7 @@ namespace SabreTools.Serialization.CrossModel
{
var softwareDb = new SoftwareDb
{
- Timestamp = item.ReadString(Data.Models.Metadata.Header.TimestampKey),
+ Timestamp = item.Timestamp,
};
return softwareDb;
}
diff --git a/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs b/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs
index d621cadb..63e096e5 100644
--- a/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs
@@ -32,7 +32,7 @@ namespace SabreTools.Serialization.CrossModel
{
var header = new Data.Models.Metadata.Header
{
- [Data.Models.Metadata.Header.TimestampKey] = item.Timestamp,
+ Timestamp = item.Timestamp,
};
return header;
}
diff --git a/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs b/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs
index ddadc837..b5ffef2d 100644
--- a/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs
@@ -33,46 +33,46 @@ namespace SabreTools.Serialization.CrossModel
{
var metadataFile = new MetadataFile();
- if (item.ContainsKey(Data.Models.Metadata.Header.AuthorKey)
- || item.ContainsKey(Data.Models.Metadata.Header.VersionKey)
- || item.ContainsKey(Data.Models.Metadata.Header.EmailKey)
- || item.ContainsKey(Data.Models.Metadata.Header.HomepageKey)
- || item.ContainsKey(Data.Models.Metadata.Header.UrlKey)
- || item.ContainsKey(Data.Models.Metadata.Header.DateKey)
- || item.ContainsKey(Data.Models.Metadata.Header.CommentKey))
+ if (item.Author != null
+ || item.Version != null
+ || item.Email != null
+ || item.Homepage != null
+ || item.Url != null
+ || item.Date != null
+ || item.Comment != null)
{
metadataFile.Credits = new Credits
{
- Author = item.ReadString(Data.Models.Metadata.Header.AuthorKey),
- Version = item.ReadString(Data.Models.Metadata.Header.VersionKey),
- Email = item.ReadString(Data.Models.Metadata.Header.EmailKey),
- Homepage = item.ReadString(Data.Models.Metadata.Header.HomepageKey),
- Url = item.ReadString(Data.Models.Metadata.Header.UrlKey),
- Date = item.ReadString(Data.Models.Metadata.Header.DateKey),
- Comment = item.ReadString(Data.Models.Metadata.Header.CommentKey),
+ Author = item.Author,
+ Version = item.Version,
+ Email = item.Email,
+ Homepage = item.Homepage,
+ Url = item.Url,
+ Date = item.Date,
+ Comment = item.Comment,
};
}
- if (item.ContainsKey(Data.Models.Metadata.Header.DatVersionKey)
- || item.ContainsKey(Data.Models.Metadata.Header.PluginKey)
+ if (item.DatVersion != null
+ || item.Plugin != null
|| item.ForceMerging != Data.Models.Metadata.MergingFlag.None)
{
metadataFile.Dat = new Dat
{
- Version = item.ReadString(Data.Models.Metadata.Header.DatVersionKey),
- Plugin = item.ReadString(Data.Models.Metadata.Header.PluginKey),
+ Version = item.DatVersion,
+ Plugin = item.Plugin,
Split = item.ForceMerging == Data.Models.Metadata.MergingFlag.Split ? "yes" : "no",
Merge = item.ForceMerging == Data.Models.Metadata.MergingFlag.Merged ? "yes" : "no",
};
}
- if (item.ContainsKey(Data.Models.Metadata.Header.RefNameKey)
- || item.ContainsKey(Data.Models.Metadata.Header.EmulatorVersionKey))
+ if (item.RefName != null
+ || item.EmulatorVersion != null)
{
metadataFile.Emulator = new Emulator
{
- RefName = item.ReadString(Data.Models.Metadata.Header.RefNameKey),
- Version = item.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey),
+ RefName = item.RefName,
+ Version = item.EmulatorVersion,
};
}
diff --git a/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs b/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs
index 1de290bb..d6eff885 100644
--- a/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs
@@ -34,19 +34,19 @@ namespace SabreTools.Serialization.CrossModel
if (item.Credits is not null)
{
- header[Data.Models.Metadata.Header.AuthorKey] = item.Credits.Author;
- header[Data.Models.Metadata.Header.VersionKey] = item.Credits.Version;
- header[Data.Models.Metadata.Header.EmailKey] = item.Credits.Email;
- header[Data.Models.Metadata.Header.HomepageKey] = item.Credits.Homepage;
- header[Data.Models.Metadata.Header.UrlKey] = item.Credits.Url;
- header[Data.Models.Metadata.Header.DateKey] = item.Credits.Date;
- header[Data.Models.Metadata.Header.CommentKey] = item.Credits.Comment;
+ header.Author = item.Credits.Author;
+ header.Version = item.Credits.Version;
+ header.Email = item.Credits.Email;
+ header.Homepage = item.Credits.Homepage;
+ header.Url = item.Credits.Url;
+ header.Date = item.Credits.Date;
+ header.Comment = item.Credits.Comment;
}
if (item.Dat is not null)
{
- header[Data.Models.Metadata.Header.DatVersionKey] = item.Dat.Version;
- header[Data.Models.Metadata.Header.PluginKey] = item.Dat.Plugin;
+ header.DatVersion = item.Dat.Version;
+ header.Plugin = item.Dat.Plugin;
if (item.Dat.Split == "yes" || item.Dat.Split == "1")
header.ForceMerging = Data.Models.Metadata.MergingFlag.Split;
@@ -56,8 +56,8 @@ namespace SabreTools.Serialization.CrossModel
if (item.Emulator is not null)
{
- header[Data.Models.Metadata.Header.RefNameKey] = item.Emulator.RefName;
- header[Data.Models.Metadata.Header.EmulatorVersionKey] = item.Emulator.Version;
+ header.RefName = item.Emulator.RefName;
+ header.EmulatorVersion = item.Emulator.Version;
}
return header;
diff --git a/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs b/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs
index 0ecfc247..5d388721 100644
--- a/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs
@@ -30,7 +30,7 @@ namespace SabreTools.Serialization.CrossModel
{
Name = item.Name,
Description = item.Description,
- Notes = item.ReadString(Data.Models.Metadata.Header.NotesKey),
+ Notes = item.Notes,
};
return softwareList;
}
diff --git a/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs b/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs
index 6645f2aa..64403020 100644
--- a/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs
@@ -34,7 +34,7 @@ namespace SabreTools.Serialization.CrossModel
{
Name = item.Name,
Description = item.Description,
- [Data.Models.Metadata.Header.NotesKey] = item.Notes,
+ Notes = item.Notes,
};
return header;
}