diff --git a/SabreTools.Models/Internal/Header.cs b/SabreTools.Models/Internal/Header.cs
index fd00f0e6..bf06312a 100644
--- a/SabreTools.Models/Internal/Header.cs
+++ b/SabreTools.Models/Internal/Header.cs
@@ -95,9 +95,6 @@ namespace SabreTools.Models.Internal
/// NewDat
public const string NewDatKey = "newDat";
- /// string
- public const string NoNamespaceSchemaLocationKey = "noNamespaceSchemaLocation";
-
/// string
public const string NotesKey = "notes";
@@ -119,6 +116,9 @@ namespace SabreTools.Models.Internal
/// (none|split|merged|nonmerged|fullmerged|device|full) "split"
public const string SampleModeKey = "samplemode";
+ /// string
+ public const string SchemaLocationKey = "schemaLocation";
+
/// string
public const string ScreenshotsHeightKey = "screenshotsHeight";
diff --git a/SabreTools.Serialization/Internal.ArchiveDotOrg.cs b/SabreTools.Serialization/Internal.ArchiveDotOrg.cs
index cb11f139..80dc56e8 100644
--- a/SabreTools.Serialization/Internal.ArchiveDotOrg.cs
+++ b/SabreTools.Serialization/Internal.ArchiveDotOrg.cs
@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromArchiveDotOrg(Models.ArchiveDotOrg.Files item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromArchiveDotOrg(item),
+ };
+
+ if (item?.File != null && item.File.Any())
+ metadataFile[MetadataFile.MachineKey] = item.File.Select(ConvertMachineFromArchiveDotOrg).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromArchiveDotOrg(Models.ArchiveDotOrg.Files item)
+ private static Header ConvertHeaderFromArchiveDotOrg(Models.ArchiveDotOrg.Files item)
{
var header = new Header
{
@@ -25,7 +41,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromArchiveDotOrg(Models.ArchiveDotOrg.File item)
+ private static Machine ConvertMachineFromArchiveDotOrg(Models.ArchiveDotOrg.File item)
{
var machine = new Machine
{
@@ -37,7 +53,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromArchiveDotOrg(Models.ArchiveDotOrg.File item)
+ private static Rom ConvertFromArchiveDotOrg(Models.ArchiveDotOrg.File item)
{
var rom = new Rom
{
diff --git a/SabreTools.Serialization/Internal.AttractMode.cs b/SabreTools.Serialization/Internal.AttractMode.cs
index cd2b02dc..bda2f846 100644
--- a/SabreTools.Serialization/Internal.AttractMode.cs
+++ b/SabreTools.Serialization/Internal.AttractMode.cs
@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromAttractMode(Models.AttractMode.MetadataFile item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromAttractMode(item),
+ };
+
+ if (item?.Row != null && item.Row.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Row.Select(ConvertMachineFromAttractMode).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromAttractMode(Models.AttractMode.MetadataFile item)
+ private static Header ConvertHeaderFromAttractMode(Models.AttractMode.MetadataFile item)
{
var header = new Header
{
@@ -25,7 +41,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromAttractMode(Models.AttractMode.Row item)
+ private static Machine ConvertMachineFromAttractMode(Models.AttractMode.Row item)
{
var machine = new Machine
{
@@ -56,7 +72,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromAttractMode(Models.AttractMode.Row item)
+ private static Rom ConvertFromAttractMode(Models.AttractMode.Row item)
{
var rom = new Rom
{
diff --git a/SabreTools.Serialization/Internal.ClrMamePro.cs b/SabreTools.Serialization/Internal.ClrMamePro.cs
index 3a017db2..09e531e5 100644
--- a/SabreTools.Serialization/Internal.ClrMamePro.cs
+++ b/SabreTools.Serialization/Internal.ClrMamePro.cs
@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromClrMamePro(Models.ClrMamePro.MetadataFile item)
+ {
+ var metadataFile = new MetadataFile();
+
+ if (item?.ClrMamePro != null)
+ metadataFile[MetadataFile.HeaderKey] = ConvertHeaderFromClrMamePro(item.ClrMamePro);
+
+ if (item?.Game != null && item.Game.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Game.Select(ConvertMachineFromClrMamePro).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromClrMamePro(Models.ClrMamePro.ClrMamePro item)
+ private static Header ConvertHeaderFromClrMamePro(Models.ClrMamePro.ClrMamePro item)
{
var header = new Header
{
@@ -40,7 +56,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromClrMamePro(Models.ClrMamePro.GameBase item)
+ private static Machine ConvertMachineFromClrMamePro(Models.ClrMamePro.GameBase item)
{
var machine = new Machine
{
@@ -162,7 +178,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Archive ConvertFromClrMamePro(Models.ClrMamePro.Archive item)
+ private static Archive ConvertFromClrMamePro(Models.ClrMamePro.Archive item)
{
var archive = new Archive
{
@@ -174,7 +190,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static BiosSet ConvertFromClrMamePro(Models.ClrMamePro.BiosSet item)
+ private static BiosSet ConvertFromClrMamePro(Models.ClrMamePro.BiosSet item)
{
var biosset = new BiosSet
{
@@ -188,7 +204,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Chip ConvertFromClrMamePro(Models.ClrMamePro.Chip item)
+ private static Chip ConvertFromClrMamePro(Models.ClrMamePro.Chip item)
{
var chip = new Chip
{
@@ -203,7 +219,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DipSwitch ConvertFromClrMamePro(Models.ClrMamePro.DipSwitch item)
+ private static DipSwitch ConvertFromClrMamePro(Models.ClrMamePro.DipSwitch item)
{
var dipswitch = new DipSwitch
{
@@ -217,7 +233,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Disk ConvertFromClrMamePro(Models.ClrMamePro.Disk item)
+ private static Disk ConvertFromClrMamePro(Models.ClrMamePro.Disk item)
{
var disk = new Disk
{
@@ -234,7 +250,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Driver ConvertFromClrMamePro(Models.ClrMamePro.Driver item)
+ private static Driver ConvertFromClrMamePro(Models.ClrMamePro.Driver item)
{
var driver = new Driver
{
@@ -250,7 +266,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Input ConvertFromClrMamePro(Models.ClrMamePro.Input item)
+ private static Input ConvertFromClrMamePro(Models.ClrMamePro.Input item)
{
var input = new Input
{
@@ -267,7 +283,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Media ConvertFromClrMamePro(Models.ClrMamePro.Media item)
+ private static Media ConvertFromClrMamePro(Models.ClrMamePro.Media item)
{
var media = new Media
{
@@ -283,7 +299,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Release ConvertFromClrMamePro(Models.ClrMamePro.Release item)
+ private static Release ConvertFromClrMamePro(Models.ClrMamePro.Release item)
{
var release = new Release
{
@@ -299,7 +315,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromClrMamePro(Models.ClrMamePro.Rom item)
+ private static Rom ConvertFromClrMamePro(Models.ClrMamePro.Rom item)
{
var rom = new Rom
{
@@ -331,7 +347,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Sample ConvertFromClrMamePro(Models.ClrMamePro.Sample item)
+ private static Sample ConvertFromClrMamePro(Models.ClrMamePro.Sample item)
{
var sample = new Sample
{
@@ -343,7 +359,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Sound ConvertFromClrMamePro(Models.ClrMamePro.Sound item)
+ private static Sound ConvertFromClrMamePro(Models.ClrMamePro.Sound item)
{
var sound = new Sound
{
@@ -355,7 +371,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Video ConvertFromClrMamePro(Models.ClrMamePro.Video item)
+ private static Video ConvertFromClrMamePro(Models.ClrMamePro.Video item)
{
var video = new Video
{
diff --git a/SabreTools.Serialization/Internal.DosCenter.cs b/SabreTools.Serialization/Internal.DosCenter.cs
index 30b4b2db..f156b034 100644
--- a/SabreTools.Serialization/Internal.DosCenter.cs
+++ b/SabreTools.Serialization/Internal.DosCenter.cs
@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromDosCenter(Models.DosCenter.MetadataFile item)
+ {
+ var metadataFile = new MetadataFile();
+
+ if (item?.DosCenter != null)
+ metadataFile[MetadataFile.HeaderKey] = ConvertHeaderFromDosCenter(item.DosCenter);
+
+ if (item?.Game != null && item.Game.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Game.Select(ConvertMachineFromDosCenter).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromDosCenter(Models.DosCenter.DosCenter item)
+ private static Header ConvertHeaderFromDosCenter(Models.DosCenter.DosCenter item)
{
var header = new Header
{
@@ -32,7 +48,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromDosCenter(Models.DosCenter.Game item)
+ private static Machine ConvertMachineFromDosCenter(Models.DosCenter.Game item)
{
var machine = new Machine
{
@@ -55,7 +71,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromDosCenter(Models.DosCenter.File item)
+ private static Rom ConvertFromDosCenter(Models.DosCenter.File item)
{
var rom = new Rom
{
diff --git a/SabreTools.Serialization/Internal.EverdriveSMDB.cs b/SabreTools.Serialization/Internal.EverdriveSMDB.cs
index 6e4468ca..eac7429b 100644
--- a/SabreTools.Serialization/Internal.EverdriveSMDB.cs
+++ b/SabreTools.Serialization/Internal.EverdriveSMDB.cs
@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromEverdriveSMDB(Models.EverdriveSMDB.MetadataFile item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromEverdriveSMDB(item),
+ };
+
+ if (item?.Row != null && item.Row.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Row.Select(ConvertMachineFromEverdriveSMDB).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromEverdriveSMDB(Models.EverdriveSMDB.MetadataFile item)
+ private static Header ConvertHeaderFromEverdriveSMDB(Models.EverdriveSMDB.MetadataFile item)
{
var header = new Header
{
@@ -25,7 +41,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromEverdriveSMDB(Models.EverdriveSMDB.Row item)
+ private static Machine ConvertMachineFromEverdriveSMDB(Models.EverdriveSMDB.Row item)
{
var machine = new Machine
{
@@ -37,7 +53,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromEverdriveSMDB(Models.EverdriveSMDB.Row item)
+ private static Rom ConvertFromEverdriveSMDB(Models.EverdriveSMDB.Row item)
{
var rom = new Rom
{
diff --git a/SabreTools.Serialization/Internal.Hashfile.cs b/SabreTools.Serialization/Internal.Hashfile.cs
index 3d7444f8..88242c58 100644
--- a/SabreTools.Serialization/Internal.Hashfile.cs
+++ b/SabreTools.Serialization/Internal.Hashfile.cs
@@ -12,10 +12,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromHashfile(Models.Hashfile.Hashfile item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromHashfile(item),
+ };
+
+ var machine = ConvertMachineFromHashfile(item);
+ metadataFile[MetadataFile.MachineKey] = new Machine[] { machine };
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromHashfile(Models.Hashfile.Hashfile item)
+ private static Header ConvertHeaderFromHashfile(Models.Hashfile.Hashfile item)
{
var header = new Header
{
@@ -27,7 +43,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromHashfile(Models.Hashfile.Hashfile item)
+ private static Machine ConvertMachineFromHashfile(Models.Hashfile.Hashfile item)
{
var machine = new Machine();
@@ -107,7 +123,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromMD5(Models.Hashfile.MD5 item)
+ private static Rom ConvertFromMD5(Models.Hashfile.MD5 item)
{
var rom = new Rom
{
@@ -120,7 +136,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromSFV(Models.Hashfile.SFV item)
+ private static Rom ConvertFromSFV(Models.Hashfile.SFV item)
{
var rom = new Rom
{
@@ -133,7 +149,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromSHA1(Models.Hashfile.SHA1 item)
+ private static Rom ConvertFromSHA1(Models.Hashfile.SHA1 item)
{
var rom = new Rom
{
@@ -146,7 +162,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromSHA256(Models.Hashfile.SHA256 item)
+ private static Rom ConvertFromSHA256(Models.Hashfile.SHA256 item)
{
var rom = new Rom
{
@@ -159,7 +175,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromSHA384(Models.Hashfile.SHA384 item)
+ private static Rom ConvertFromSHA384(Models.Hashfile.SHA384 item)
{
var rom = new Rom
{
@@ -172,7 +188,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromSHA512(Models.Hashfile.SHA512 item)
+ private static Rom ConvertFromSHA512(Models.Hashfile.SHA512 item)
{
var rom = new Rom
{
@@ -185,7 +201,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromSpamSum(Models.Hashfile.SpamSum item)
+ private static Rom ConvertFromSpamSum(Models.Hashfile.SpamSum item)
{
var rom = new Rom
{
diff --git a/SabreTools.Serialization/Internal.Listrom.cs b/SabreTools.Serialization/Internal.Listrom.cs
index 1df8a647..12401854 100644
--- a/SabreTools.Serialization/Internal.Listrom.cs
+++ b/SabreTools.Serialization/Internal.Listrom.cs
@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromListrom(Models.Listrom.MetadataFile item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromListrom(item),
+ };
+
+ if (item?.Set != null && item.Set.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Set.Select(ConvertMachineFromListrom).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromListrom(Models.Listrom.MetadataFile item)
+ private static Header ConvertHeaderFromListrom(Models.Listrom.MetadataFile item)
{
var header = new Header
{
@@ -26,7 +42,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromListrom(Models.Listrom.Set item)
+ private static Machine ConvertMachineFromListrom(Models.Listrom.Set item)
{
var machine = new Machine();
if (!string.IsNullOrWhiteSpace(item.Device))
@@ -57,7 +73,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DatItem ConvertFromListrom(Models.Listrom.Row item)
+ private static DatItem ConvertFromListrom(Models.Listrom.Row item)
{
if (item.Size == null)
{
diff --git a/SabreTools.Serialization/Internal.Listxml.cs b/SabreTools.Serialization/Internal.Listxml.cs
index 27da5d50..cebf14d9 100644
--- a/SabreTools.Serialization/Internal.Listxml.cs
+++ b/SabreTools.Serialization/Internal.Listxml.cs
@@ -11,10 +11,42 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromListxml(Models.Listxml.M1 item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromListxml(item),
+ };
+
+ if (item?.Game != null && item.Game.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Game.Select(ConvertMachineFromListxml).ToArray();
+
+ return metadataFile;
+ }
+
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromListxml(Models.Listxml.Mame item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromListxml(item),
+ };
+
+ if (item?.Game != null && item.Game.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Game.Select(ConvertMachineFromListxml).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromListxml(Models.Listxml.M1 item)
+ private static Header ConvertHeaderFromListxml(Models.Listxml.M1 item)
{
var header = new Header
{
@@ -26,7 +58,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Header ConvertHeaderFromListxml(Models.Listxml.Mame item)
+ private static Header ConvertHeaderFromListxml(Models.Listxml.Mame item)
{
var header = new Header
{
@@ -40,7 +72,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromListxml(Models.Listxml.GameBase item)
+ private static Machine ConvertMachineFromListxml(Models.Listxml.GameBase item)
{
var machine = new Machine
{
@@ -244,7 +276,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Adjuster ConvertFromListxml(Models.Listxml.Adjuster item)
+ private static Adjuster ConvertFromListxml(Models.Listxml.Adjuster item)
{
var adjuster = new Adjuster
{
@@ -261,7 +293,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Analog ConvertFromListxml(Models.Listxml.Analog item)
+ private static Analog ConvertFromListxml(Models.Listxml.Analog item)
{
var analog = new Analog
{
@@ -273,7 +305,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static BiosSet ConvertFromListxml(Models.Listxml.BiosSet item)
+ private static BiosSet ConvertFromListxml(Models.Listxml.BiosSet item)
{
var biosset = new BiosSet
{
@@ -287,7 +319,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Chip ConvertFromListxml(Models.Listxml.Chip item)
+ private static Chip ConvertFromListxml(Models.Listxml.Chip item)
{
var chip = new Chip
{
@@ -303,7 +335,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Condition ConvertFromListxml(Models.Listxml.Condition item)
+ private static Condition ConvertFromListxml(Models.Listxml.Condition item)
{
var condition = new Condition
{
@@ -318,7 +350,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Configuration ConvertFromListxml(Models.Listxml.Configuration item)
+ private static Configuration ConvertFromListxml(Models.Listxml.Configuration item)
{
var configuration = new Configuration
{
@@ -356,7 +388,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static ConfLocation ConvertFromListxml(Models.Listxml.ConfLocation item)
+ private static ConfLocation ConvertFromListxml(Models.Listxml.ConfLocation item)
{
var confLocation = new ConfLocation
{
@@ -370,7 +402,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static ConfSetting ConvertFromListxml(Models.Listxml.ConfSetting item)
+ private static ConfSetting ConvertFromListxml(Models.Listxml.ConfSetting item)
{
var confSetting = new ConfSetting
{
@@ -388,7 +420,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Control ConvertFromListxml(Models.Listxml.Control item)
+ private static Control ConvertFromListxml(Models.Listxml.Control item)
{
var control = new Control
{
@@ -411,7 +443,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Device ConvertFromListxml(Models.Listxml.Device item)
+ private static Device ConvertFromListxml(Models.Listxml.Device item)
{
var device = new Device
{
@@ -441,7 +473,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DeviceRef ConvertFromListxml(Models.Listxml.DeviceRef item)
+ private static DeviceRef ConvertFromListxml(Models.Listxml.DeviceRef item)
{
var deviceRef = new DeviceRef
{
@@ -453,7 +485,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DipLocation ConvertFromListxml(Models.Listxml.DipLocation item)
+ private static DipLocation ConvertFromListxml(Models.Listxml.DipLocation item)
{
var dipLocation = new DipLocation
{
@@ -467,7 +499,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DipSwitch ConvertFromListxml(Models.Listxml.DipSwitch item)
+ private static DipSwitch ConvertFromListxml(Models.Listxml.DipSwitch item)
{
var dipSwitch = new DipSwitch
{
@@ -505,7 +537,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DipValue ConvertFromListxml(Models.Listxml.DipValue item)
+ private static DipValue ConvertFromListxml(Models.Listxml.DipValue item)
{
var dipValue = new DipValue
{
@@ -523,7 +555,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Disk ConvertFromListxml(Models.Listxml.Disk item)
+ private static Disk ConvertFromListxml(Models.Listxml.Disk item)
{
var disk = new Disk
{
@@ -543,7 +575,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Display ConvertFromListxml(Models.Listxml.Display item)
+ private static Display ConvertFromListxml(Models.Listxml.Display item)
{
var display = new Display
{
@@ -568,7 +600,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Driver ConvertFromListxml(Models.Listxml.Driver item)
+ private static Driver ConvertFromListxml(Models.Listxml.Driver item)
{
var driver = new Driver
{
@@ -590,7 +622,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Extension ConvertFromListxml(Models.Listxml.Extension item)
+ private static Extension ConvertFromListxml(Models.Listxml.Extension item)
{
var extension = new Extension
{
@@ -602,7 +634,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Feature ConvertFromListxml(Models.Listxml.Feature item)
+ private static Feature ConvertFromListxml(Models.Listxml.Feature item)
{
var feature = new Feature
{
@@ -616,7 +648,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Input ConvertFromListxml(Models.Listxml.Input item)
+ private static Input ConvertFromListxml(Models.Listxml.Input item)
{
var input = new Input
{
@@ -644,7 +676,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Instance ConvertFromListxml(Models.Listxml.Instance item)
+ private static Instance ConvertFromListxml(Models.Listxml.Instance item)
{
var instance = new Instance
{
@@ -657,7 +689,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Port ConvertFromListxml(Models.Listxml.Port item)
+ private static Port ConvertFromListxml(Models.Listxml.Port item)
{
var port = new Port
{
@@ -680,7 +712,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static RamOption ConvertFromListxml(Models.Listxml.RamOption item)
+ private static RamOption ConvertFromListxml(Models.Listxml.RamOption item)
{
var ramOption = new RamOption
{
@@ -693,7 +725,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromListxml(Models.Listxml.Rom item)
+ private static Rom ConvertFromListxml(Models.Listxml.Rom item)
{
var rom = new Rom
{
@@ -716,7 +748,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Sample ConvertFromListxml(Models.Listxml.Sample item)
+ private static Sample ConvertFromListxml(Models.Listxml.Sample item)
{
var sample = new Sample
{
@@ -728,7 +760,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Slot ConvertFromListxml(Models.Listxml.Slot item)
+ private static Slot ConvertFromListxml(Models.Listxml.Slot item)
{
var slot = new Slot
{
@@ -751,7 +783,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static SlotOption ConvertFromListxml(Models.Listxml.SlotOption item)
+ private static SlotOption ConvertFromListxml(Models.Listxml.SlotOption item)
{
var slotOption = new SlotOption
{
@@ -765,7 +797,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static SoftwareList ConvertFromListxml(Models.Listxml.SoftwareList item)
+ private static SoftwareList ConvertFromListxml(Models.Listxml.SoftwareList item)
{
var softwareList = new SoftwareList
{
@@ -780,7 +812,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Sound ConvertFromListxml(Models.Listxml.Sound item)
+ private static Sound ConvertFromListxml(Models.Listxml.Sound item)
{
var sound = new Sound
{
@@ -792,7 +824,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Video ConvertFromListxml(Models.Listxml.Video item)
+ private static Video ConvertFromListxml(Models.Listxml.Video item)
{
var video = new Video
{
diff --git a/SabreTools.Serialization/Internal.Logiqx.cs b/SabreTools.Serialization/Internal.Logiqx.cs
index 086e613c..f77ec5e5 100644
--- a/SabreTools.Serialization/Internal.Logiqx.cs
+++ b/SabreTools.Serialization/Internal.Logiqx.cs
@@ -11,10 +11,41 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromLogiqx(Models.Logiqx.Datafile item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromLogiqx(item),
+ };
+
+ // TODO: Handle Dir items
+ if (item?.Game != null && item.Game.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Game.Select(ConvertMachineFromLogiqx).ToArray();
+
+ return metadataFile;
+ }
+
+ ///
+ /// Convert from to
+ ///
+ private static Header ConvertHeaderFromLogiqx(Models.Logiqx.Datafile item)
+ {
+ var header = ConvertHeaderFromLogiqx(item.Header);
+
+ header[Header.BuildKey] = item.Build;
+ header[Header.DebugKey] = item.Debug;
+ header[Header.SchemaLocationKey] = item.SchemaLocation;
+
+ return header;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromLogiqx(Models.Logiqx.Header item)
+ private static Header ConvertHeaderFromLogiqx(Models.Logiqx.Header item)
{
var header = new Header
{
@@ -58,7 +89,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromLogiqx(Models.Logiqx.GameBase item)
+ private static Machine ConvertMachineFromLogiqx(Models.Logiqx.GameBase item)
{
var machine = new Machine
{
@@ -190,7 +221,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Archive ConvertFromLogiqx(Models.Logiqx.Archive item)
+ private static Archive ConvertFromLogiqx(Models.Logiqx.Archive item)
{
var archive = new Archive
{
@@ -202,7 +233,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static BiosSet ConvertFromLogiqx(Models.Logiqx.BiosSet item)
+ private static BiosSet ConvertFromLogiqx(Models.Logiqx.BiosSet item)
{
var biosset = new BiosSet
{
@@ -216,7 +247,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DeviceRef ConvertFromLogiqx(Models.Logiqx.DeviceRef item)
+ private static DeviceRef ConvertFromLogiqx(Models.Logiqx.DeviceRef item)
{
var deviceRef = new DeviceRef
{
@@ -228,7 +259,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Disk ConvertFromLogiqx(Models.Logiqx.Disk item)
+ private static Disk ConvertFromLogiqx(Models.Logiqx.Disk item)
{
var disk = new Disk
{
@@ -245,7 +276,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Driver ConvertFromLogiqx(Models.Logiqx.Driver item)
+ private static Driver ConvertFromLogiqx(Models.Logiqx.Driver item)
{
var driver = new Driver
{
@@ -264,7 +295,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Media ConvertFromLogiqx(Models.Logiqx.Media item)
+ private static Media ConvertFromLogiqx(Models.Logiqx.Media item)
{
var media = new Media
{
@@ -280,7 +311,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Release ConvertFromLogiqx(Models.Logiqx.Release item)
+ private static Release ConvertFromLogiqx(Models.Logiqx.Release item)
{
var release = new Release
{
@@ -296,7 +327,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromLogiqx(Models.Logiqx.Rom item)
+ private static Rom ConvertFromLogiqx(Models.Logiqx.Rom item)
{
var rom = new Rom
{
@@ -325,7 +356,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Sample ConvertFromLogiqx(Models.Logiqx.Sample item)
+ private static Sample ConvertFromLogiqx(Models.Logiqx.Sample item)
{
var sample = new Sample
{
@@ -337,7 +368,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static SoftwareList ConvertFromLogiqx(Models.Logiqx.SoftwareList item)
+ private static SoftwareList ConvertFromLogiqx(Models.Logiqx.SoftwareList item)
{
var softwareList = new SoftwareList
{
diff --git a/SabreTools.Serialization/Internal.OfflineList.cs b/SabreTools.Serialization/Internal.OfflineList.cs
index e8497108..3c2adcbe 100644
--- a/SabreTools.Serialization/Internal.OfflineList.cs
+++ b/SabreTools.Serialization/Internal.OfflineList.cs
@@ -11,14 +11,30 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromOfflineList(Models.OfflineList.Dat item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromOfflineList(item),
+ };
+
+ if (item?.Games?.Game != null && item.Games.Game.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Games.Game.Select(ConvertMachineFromOfflineList).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromOfflineList(Models.OfflineList.Dat item)
+ private static Header ConvertHeaderFromOfflineList(Models.OfflineList.Dat item)
{
var header = new Header
{
- [Header.NoNamespaceSchemaLocationKey] = item.NoNamespaceSchemaLocation,
+ [Header.SchemaLocationKey] = item.NoNamespaceSchemaLocation,
};
if (item.Configuration != null)
@@ -47,7 +63,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromOfflineList(Models.OfflineList.Game item)
+ private static Machine ConvertMachineFromOfflineList(Models.OfflineList.Game item)
{
var machine = new Machine
{
@@ -80,23 +96,10 @@ namespace SabreTools.Serialization
return machine;
}
- ///
- /// Convert from to an array of
- ///
- public static Rom[] ConvertFromOfflineList(Models.OfflineList.Files item)
- {
- var roms = new List();
- foreach (var romCRC in item.RomCRC)
- {
- roms.Add(ConvertFromOfflineList(romCRC));
- }
- return roms.ToArray();
- }
-
///
/// Convert from to
///
- public static Rom ConvertFromOfflineList(Models.OfflineList.FileRomCRC item)
+ private static Rom ConvertFromOfflineList(Models.OfflineList.FileRomCRC item)
{
var rom = new Rom
{
@@ -120,7 +123,7 @@ namespace SabreTools.Serialization
var dat = new Models.OfflineList.Dat
{
- NoNamespaceSchemaLocation = item.ReadString(Header.NoNamespaceSchemaLocationKey),
+ NoNamespaceSchemaLocation = item.ReadString(Header.SchemaLocationKey),
};
if (item.ContainsKey(Header.NameKey)
diff --git a/SabreTools.Serialization/Internal.OpenMSX.cs b/SabreTools.Serialization/Internal.OpenMSX.cs
index 0bfc27ee..576f4430 100644
--- a/SabreTools.Serialization/Internal.OpenMSX.cs
+++ b/SabreTools.Serialization/Internal.OpenMSX.cs
@@ -11,6 +11,22 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromOpenMSX(Models.OpenMSX.SoftwareDb item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromOpenMSX(item),
+ };
+
+ if (item?.Software != null && item.Software.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Software.Select(ConvertMachineFromOpenMSX).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
diff --git a/SabreTools.Serialization/Internal.RomCenter.cs b/SabreTools.Serialization/Internal.RomCenter.cs
index abc0fd05..f8e2e672 100644
--- a/SabreTools.Serialization/Internal.RomCenter.cs
+++ b/SabreTools.Serialization/Internal.RomCenter.cs
@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromRomCenter(Models.RomCenter.MetadataFile item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromRomCenter(item),
+ };
+
+ if (item?.Games?.Rom != null && item.Games.Rom.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Games.Rom.Select(ConvertMachineFromRomCenter).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromRomCenter(Models.RomCenter.MetadataFile item)
+ private static Header ConvertHeaderFromRomCenter(Models.RomCenter.MetadataFile item)
{
var header = new Header();
@@ -51,7 +67,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromRomCenter(Models.RomCenter.Rom item)
+ private static Machine ConvertMachineFromRomCenter(Models.RomCenter.Rom item)
{
var machine = new Machine
{
@@ -68,7 +84,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromRomCenter(Models.RomCenter.Rom item)
+ private static Rom ConvertFromRomCenter(Models.RomCenter.Rom item)
{
var rom = new Rom
{
diff --git a/SabreTools.Serialization/Internal.SeparatedValue.cs b/SabreTools.Serialization/Internal.SeparatedValue.cs
index 0376647f..74b345f6 100644
--- a/SabreTools.Serialization/Internal.SeparatedValue.cs
+++ b/SabreTools.Serialization/Internal.SeparatedValue.cs
@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromClrMamePro(Models.SeparatedValue.MetadataFile item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromSeparatedValue(item),
+ };
+
+ if (item?.Row != null && item.Row.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Row.Select(ConvertMachineFromSeparatedValue).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromSeparatedValue(Models.SeparatedValue.MetadataFile item)
+ private static Header ConvertHeaderFromSeparatedValue(Models.SeparatedValue.MetadataFile item)
{
var header = new Header
{
@@ -35,7 +51,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromSeparatedValue(Models.SeparatedValue.Row item)
+ private static Machine ConvertMachineFromSeparatedValue(Models.SeparatedValue.Row item)
{
var machine = new Machine
{
@@ -65,7 +81,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DatItem? ConvertFromSeparatedValue(Models.SeparatedValue.Row item)
+ private static DatItem? ConvertFromSeparatedValue(Models.SeparatedValue.Row item)
{
return item.Type switch
{
diff --git a/SabreTools.Serialization/Internal.SoftwareList.cs b/SabreTools.Serialization/Internal.SoftwareList.cs
index a9aa2a2f..64853d90 100644
--- a/SabreTools.Serialization/Internal.SoftwareList.cs
+++ b/SabreTools.Serialization/Internal.SoftwareList.cs
@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static MetadataFile ConvertFromSoftwareList(Models.SoftwareList.SoftwareList item)
+ {
+ var metadataFile = new MetadataFile
+ {
+ [MetadataFile.HeaderKey] = ConvertHeaderFromSoftwareList(item),
+ };
+
+ if (item?.Software != null && item.Software.Any())
+ metadataFile[MetadataFile.MachineKey] = item.Software.Select(ConvertMachineFromSoftwareList).ToArray();
+
+ return metadataFile;
+ }
+
///
/// Convert from to
///
- public static Header ConvertHeaderFromSoftwareList(Models.SoftwareList.SoftwareList item)
+ private static Header ConvertHeaderFromSoftwareList(Models.SoftwareList.SoftwareList item)
{
var header = new Header
{
@@ -28,7 +44,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Machine ConvertMachineFromSoftwareList(Models.SoftwareList.Software item)
+ private static Machine ConvertMachineFromSoftwareList(Models.SoftwareList.Software item)
{
var machine = new Machine
{
@@ -77,7 +93,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DataArea ConvertFromSoftwareList(Models.SoftwareList.DataArea item)
+ private static DataArea ConvertFromSoftwareList(Models.SoftwareList.DataArea item)
{
var dataArea = new DataArea
{
@@ -103,7 +119,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DipSwitch ConvertFromSoftwareList(Models.SoftwareList.DipSwitch item)
+ private static DipSwitch ConvertFromSoftwareList(Models.SoftwareList.DipSwitch item)
{
var dipSwitch = new DipSwitch
{
@@ -128,7 +144,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DipValue ConvertFromSoftwareList(Models.SoftwareList.DipValue item)
+ private static DipValue ConvertFromSoftwareList(Models.SoftwareList.DipValue item)
{
var dipValue = new DipValue
{
@@ -142,7 +158,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Disk ConvertFromSoftwareList(Models.SoftwareList.Disk item)
+ private static Disk ConvertFromSoftwareList(Models.SoftwareList.Disk item)
{
var disk = new Disk
{
@@ -158,7 +174,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static DiskArea ConvertFromSoftwareList(Models.SoftwareList.DiskArea item)
+ private static DiskArea ConvertFromSoftwareList(Models.SoftwareList.DiskArea item)
{
var diskArea = new DiskArea
{
@@ -181,7 +197,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Feature ConvertFromSoftwareList(Models.SoftwareList.Feature item)
+ private static Feature ConvertFromSoftwareList(Models.SoftwareList.Feature item)
{
var feature = new Feature
{
@@ -194,7 +210,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Info ConvertFromSoftwareList(Models.SoftwareList.Info item)
+ private static Info ConvertFromSoftwareList(Models.SoftwareList.Info item)
{
var info = new Info
{
@@ -207,7 +223,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Part ConvertFromSoftwareList(Models.SoftwareList.Part item)
+ private static Part ConvertFromSoftwareList(Models.SoftwareList.Part item)
{
var part = new Part
{
@@ -261,7 +277,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static Rom ConvertFromSoftwareList(Models.SoftwareList.Rom item)
+ private static Rom ConvertFromSoftwareList(Models.SoftwareList.Rom item)
{
var rom = new Rom
{
@@ -281,7 +297,7 @@ namespace SabreTools.Serialization
///
/// Convert from to
///
- public static SharedFeat ConvertFromSoftwareList(Models.SoftwareList.SharedFeat item)
+ private static SharedFeat ConvertFromSoftwareList(Models.SoftwareList.SharedFeat item)
{
var sharedFeat = new SharedFeat
{