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 {