Add metadata file serialization

This commit is contained in:
Matt Nadareski
2023-08-09 21:28:55 -04:00
parent 3e1b71bddc
commit 8849d19ec1
15 changed files with 365 additions and 123 deletions

View File

@@ -95,9 +95,6 @@ namespace SabreTools.Models.Internal
/// <remarks>NewDat</remarks> /// <remarks>NewDat</remarks>
public const string NewDatKey = "newDat"; public const string NewDatKey = "newDat";
/// <remarks>string</remarks>
public const string NoNamespaceSchemaLocationKey = "noNamespaceSchemaLocation";
/// <remarks>string</remarks> /// <remarks>string</remarks>
public const string NotesKey = "notes"; public const string NotesKey = "notes";
@@ -119,6 +116,9 @@ namespace SabreTools.Models.Internal
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks> /// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
public const string SampleModeKey = "samplemode"; public const string SampleModeKey = "samplemode";
/// <remarks>string</remarks>
public const string SchemaLocationKey = "schemaLocation";
/// <remarks>string</remarks> /// <remarks>string</remarks>
public const string ScreenshotsHeightKey = "screenshotsHeight"; public const string ScreenshotsHeightKey = "screenshotsHeight";

View File

@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.Files"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.Files"/> to <cref="Header"/> /// Convert from <cref="Models.ArchiveDotOrg.Files"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromArchiveDotOrg(Models.ArchiveDotOrg.Files item) private static Header ConvertHeaderFromArchiveDotOrg(Models.ArchiveDotOrg.Files item)
{ {
var header = new Header var header = new Header
{ {
@@ -25,7 +41,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Machine"/> /// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromArchiveDotOrg(Models.ArchiveDotOrg.File item) private static Machine ConvertMachineFromArchiveDotOrg(Models.ArchiveDotOrg.File item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -37,7 +53,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Rom"/> /// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromArchiveDotOrg(Models.ArchiveDotOrg.File item) private static Rom ConvertFromArchiveDotOrg(Models.ArchiveDotOrg.File item)
{ {
var rom = new Rom var rom = new Rom
{ {

View File

@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.AttractMode.MetadataFile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.AttractMode.MetadataFile"/> to <cref="Header"/> /// Convert from <cref="Models.AttractMode.MetadataFile"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromAttractMode(Models.AttractMode.MetadataFile item) private static Header ConvertHeaderFromAttractMode(Models.AttractMode.MetadataFile item)
{ {
var header = new Header var header = new Header
{ {
@@ -25,7 +41,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.AttractMode.Row"/> to <cref="Machine"/> /// Convert from <cref="Models.AttractMode.Row"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromAttractMode(Models.AttractMode.Row item) private static Machine ConvertMachineFromAttractMode(Models.AttractMode.Row item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -56,7 +72,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.AttractMode.Row"/> to <cref="Rom"/> /// Convert from <cref="Models.AttractMode.Row"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromAttractMode(Models.AttractMode.Row item) private static Rom ConvertFromAttractMode(Models.AttractMode.Row item)
{ {
var rom = new Rom var rom = new Rom
{ {

View File

@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.ClrMamePro.MetadataFile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.ClrMamePro"/> to <cref="Header"/> /// Convert from <cref="Models.ClrMamePro.ClrMamePro"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromClrMamePro(Models.ClrMamePro.ClrMamePro item) private static Header ConvertHeaderFromClrMamePro(Models.ClrMamePro.ClrMamePro item)
{ {
var header = new Header var header = new Header
{ {
@@ -40,7 +56,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.GameBase"/> to <cref="Machine"/> /// Convert from <cref="Models.ClrMamePro.GameBase"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromClrMamePro(Models.ClrMamePro.GameBase item) private static Machine ConvertMachineFromClrMamePro(Models.ClrMamePro.GameBase item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -162,7 +178,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Archive"/> to <cref="Archive"/> /// Convert from <cref="Models.ClrMamePro.Archive"/> to <cref="Archive"/>
/// </summary> /// </summary>
public static Archive ConvertFromClrMamePro(Models.ClrMamePro.Archive item) private static Archive ConvertFromClrMamePro(Models.ClrMamePro.Archive item)
{ {
var archive = new Archive var archive = new Archive
{ {
@@ -174,7 +190,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.BiosSet"/> to <cref="BiosSet"/> /// Convert from <cref="Models.ClrMamePro.BiosSet"/> to <cref="BiosSet"/>
/// </summary> /// </summary>
public static BiosSet ConvertFromClrMamePro(Models.ClrMamePro.BiosSet item) private static BiosSet ConvertFromClrMamePro(Models.ClrMamePro.BiosSet item)
{ {
var biosset = new BiosSet var biosset = new BiosSet
{ {
@@ -188,7 +204,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Chip"/> to <cref="Chip"/> /// Convert from <cref="Models.ClrMamePro.Chip"/> to <cref="Chip"/>
/// </summary> /// </summary>
public static Chip ConvertFromClrMamePro(Models.ClrMamePro.Chip item) private static Chip ConvertFromClrMamePro(Models.ClrMamePro.Chip item)
{ {
var chip = new Chip var chip = new Chip
{ {
@@ -203,7 +219,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.DipSwitch"/> to <cref="DipSwitch"/> /// Convert from <cref="Models.ClrMamePro.DipSwitch"/> to <cref="DipSwitch"/>
/// </summary> /// </summary>
public static DipSwitch ConvertFromClrMamePro(Models.ClrMamePro.DipSwitch item) private static DipSwitch ConvertFromClrMamePro(Models.ClrMamePro.DipSwitch item)
{ {
var dipswitch = new DipSwitch var dipswitch = new DipSwitch
{ {
@@ -217,7 +233,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Disk"/> to <cref="Disk"/> /// Convert from <cref="Models.ClrMamePro.Disk"/> to <cref="Disk"/>
/// </summary> /// </summary>
public static Disk ConvertFromClrMamePro(Models.ClrMamePro.Disk item) private static Disk ConvertFromClrMamePro(Models.ClrMamePro.Disk item)
{ {
var disk = new Disk var disk = new Disk
{ {
@@ -234,7 +250,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Driver"/> to <cref="Driver"/> /// Convert from <cref="Models.ClrMamePro.Driver"/> to <cref="Driver"/>
/// </summary> /// </summary>
public static Driver ConvertFromClrMamePro(Models.ClrMamePro.Driver item) private static Driver ConvertFromClrMamePro(Models.ClrMamePro.Driver item)
{ {
var driver = new Driver var driver = new Driver
{ {
@@ -250,7 +266,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Input"/> to <cref="Input"/> /// Convert from <cref="Models.ClrMamePro.Input"/> to <cref="Input"/>
/// </summary> /// </summary>
public static Input ConvertFromClrMamePro(Models.ClrMamePro.Input item) private static Input ConvertFromClrMamePro(Models.ClrMamePro.Input item)
{ {
var input = new Input var input = new Input
{ {
@@ -267,7 +283,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Media"/> to <cref="Media"/> /// Convert from <cref="Models.ClrMamePro.Media"/> to <cref="Media"/>
/// </summary> /// </summary>
public static Media ConvertFromClrMamePro(Models.ClrMamePro.Media item) private static Media ConvertFromClrMamePro(Models.ClrMamePro.Media item)
{ {
var media = new Media var media = new Media
{ {
@@ -283,7 +299,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Release"/> to <cref="Release"/> /// Convert from <cref="Models.ClrMamePro.Release"/> to <cref="Release"/>
/// </summary> /// </summary>
public static Release ConvertFromClrMamePro(Models.ClrMamePro.Release item) private static Release ConvertFromClrMamePro(Models.ClrMamePro.Release item)
{ {
var release = new Release var release = new Release
{ {
@@ -299,7 +315,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Rom"/> to <cref="Rom"/> /// Convert from <cref="Models.ClrMamePro.Rom"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromClrMamePro(Models.ClrMamePro.Rom item) private static Rom ConvertFromClrMamePro(Models.ClrMamePro.Rom item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -331,7 +347,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Sample"/> to <cref="Sample"/> /// Convert from <cref="Models.ClrMamePro.Sample"/> to <cref="Sample"/>
/// </summary> /// </summary>
public static Sample ConvertFromClrMamePro(Models.ClrMamePro.Sample item) private static Sample ConvertFromClrMamePro(Models.ClrMamePro.Sample item)
{ {
var sample = new Sample var sample = new Sample
{ {
@@ -343,7 +359,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Sound"/> to <cref="Sound"/> /// Convert from <cref="Models.ClrMamePro.Sound"/> to <cref="Sound"/>
/// </summary> /// </summary>
public static Sound ConvertFromClrMamePro(Models.ClrMamePro.Sound item) private static Sound ConvertFromClrMamePro(Models.ClrMamePro.Sound item)
{ {
var sound = new Sound var sound = new Sound
{ {
@@ -355,7 +371,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.ClrMamePro.Video"/> to <cref="Video"/> /// Convert from <cref="Models.ClrMamePro.Video"/> to <cref="Video"/>
/// </summary> /// </summary>
public static Video ConvertFromClrMamePro(Models.ClrMamePro.Video item) private static Video ConvertFromClrMamePro(Models.ClrMamePro.Video item)
{ {
var video = new Video var video = new Video
{ {

View File

@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.DosCenter.MetadataFile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.DosCenter.DosCenter"/> to <cref="Header"/> /// Convert from <cref="Models.DosCenter.DosCenter"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromDosCenter(Models.DosCenter.DosCenter item) private static Header ConvertHeaderFromDosCenter(Models.DosCenter.DosCenter item)
{ {
var header = new Header var header = new Header
{ {
@@ -32,7 +48,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.DosCenter.Game"/> to <cref="Machine"/> /// Convert from <cref="Models.DosCenter.Game"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromDosCenter(Models.DosCenter.Game item) private static Machine ConvertMachineFromDosCenter(Models.DosCenter.Game item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -55,7 +71,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.DosCenter.File"/> to <cref="Rom"/> /// Convert from <cref="Models.DosCenter.File"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromDosCenter(Models.DosCenter.File item) private static Rom ConvertFromDosCenter(Models.DosCenter.File item)
{ {
var rom = new Rom var rom = new Rom
{ {

View File

@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.EverdriveSMDB.MetadataFile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.EverdriveSMDB.MetadataFile"/> to <cref="Header"/> /// Convert from <cref="Models.EverdriveSMDB.MetadataFile"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromEverdriveSMDB(Models.EverdriveSMDB.MetadataFile item) private static Header ConvertHeaderFromEverdriveSMDB(Models.EverdriveSMDB.MetadataFile item)
{ {
var header = new Header var header = new Header
{ {
@@ -25,7 +41,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Machine"/> /// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromEverdriveSMDB(Models.EverdriveSMDB.Row item) private static Machine ConvertMachineFromEverdriveSMDB(Models.EverdriveSMDB.Row item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -37,7 +53,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Rom"/> /// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromEverdriveSMDB(Models.EverdriveSMDB.Row item) private static Rom ConvertFromEverdriveSMDB(Models.EverdriveSMDB.Row item)
{ {
var rom = new Rom var rom = new Rom
{ {

View File

@@ -12,10 +12,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Header"/> /// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromHashfile(Models.Hashfile.Hashfile item) private static Header ConvertHeaderFromHashfile(Models.Hashfile.Hashfile item)
{ {
var header = new Header var header = new Header
{ {
@@ -27,7 +43,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Machine"/> /// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromHashfile(Models.Hashfile.Hashfile item) private static Machine ConvertMachineFromHashfile(Models.Hashfile.Hashfile item)
{ {
var machine = new Machine(); var machine = new Machine();
@@ -107,7 +123,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.MD5"/> to <cref="Rom"/> /// Convert from <cref="Models.Hashfile.MD5"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromMD5(Models.Hashfile.MD5 item) private static Rom ConvertFromMD5(Models.Hashfile.MD5 item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -120,7 +136,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.SFV"/> to <cref="Rom"/> /// Convert from <cref="Models.Hashfile.SFV"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromSFV(Models.Hashfile.SFV item) private static Rom ConvertFromSFV(Models.Hashfile.SFV item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -133,7 +149,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.SHA1"/> to <cref="Rom"/> /// Convert from <cref="Models.Hashfile.SHA1"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromSHA1(Models.Hashfile.SHA1 item) private static Rom ConvertFromSHA1(Models.Hashfile.SHA1 item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -146,7 +162,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.SHA256"/> to <cref="Rom"/> /// Convert from <cref="Models.Hashfile.SHA256"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromSHA256(Models.Hashfile.SHA256 item) private static Rom ConvertFromSHA256(Models.Hashfile.SHA256 item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -159,7 +175,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.SHA384"/> to <cref="Rom"/> /// Convert from <cref="Models.Hashfile.SHA384"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromSHA384(Models.Hashfile.SHA384 item) private static Rom ConvertFromSHA384(Models.Hashfile.SHA384 item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -172,7 +188,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.SHA512"/> to <cref="Rom"/> /// Convert from <cref="Models.Hashfile.SHA512"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromSHA512(Models.Hashfile.SHA512 item) private static Rom ConvertFromSHA512(Models.Hashfile.SHA512 item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -185,7 +201,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Hashfile.SpamSum"/> to <cref="Rom"/> /// Convert from <cref="Models.Hashfile.SpamSum"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromSpamSum(Models.Hashfile.SpamSum item) private static Rom ConvertFromSpamSum(Models.Hashfile.SpamSum item)
{ {
var rom = new Rom var rom = new Rom
{ {

View File

@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.Listrom.MetadataFile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.Listrom.MetadataFile"/> to <cref="Header"/> /// Convert from <cref="Models.Listrom.MetadataFile"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromListrom(Models.Listrom.MetadataFile item) private static Header ConvertHeaderFromListrom(Models.Listrom.MetadataFile item)
{ {
var header = new Header var header = new Header
{ {
@@ -26,7 +42,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listrom.Set"/> to <cref="Machine"/> /// Convert from <cref="Models.Listrom.Set"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromListrom(Models.Listrom.Set item) private static Machine ConvertMachineFromListrom(Models.Listrom.Set item)
{ {
var machine = new Machine(); var machine = new Machine();
if (!string.IsNullOrWhiteSpace(item.Device)) if (!string.IsNullOrWhiteSpace(item.Device))
@@ -57,7 +73,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listrom.Row"/> to <cref="DatItem"/> /// Convert from <cref="Models.Listrom.Row"/> to <cref="DatItem"/>
/// </summary> /// </summary>
public static DatItem ConvertFromListrom(Models.Listrom.Row item) private static DatItem ConvertFromListrom(Models.Listrom.Row item)
{ {
if (item.Size == null) if (item.Size == null)
{ {

View File

@@ -11,10 +11,42 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.Listxml.M1"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary>
/// Convert from <cref="Models.Listxml.Mame"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.M1"/> to <cref="Header"/> /// Convert from <cref="Models.Listxml.M1"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromListxml(Models.Listxml.M1 item) private static Header ConvertHeaderFromListxml(Models.Listxml.M1 item)
{ {
var header = new Header var header = new Header
{ {
@@ -26,7 +58,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Mame"/> to <cref="Header"/> /// Convert from <cref="Models.Listxml.Mame"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromListxml(Models.Listxml.Mame item) private static Header ConvertHeaderFromListxml(Models.Listxml.Mame item)
{ {
var header = new Header var header = new Header
{ {
@@ -40,7 +72,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.GameBase"/> to <cref="Machine"/> /// Convert from <cref="Models.Listxml.GameBase"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromListxml(Models.Listxml.GameBase item) private static Machine ConvertMachineFromListxml(Models.Listxml.GameBase item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -244,7 +276,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Adjuster"/> to <cref="Adjuster"/> /// Convert from <cref="Models.Listxml.Adjuster"/> to <cref="Adjuster"/>
/// </summary> /// </summary>
public static Adjuster ConvertFromListxml(Models.Listxml.Adjuster item) private static Adjuster ConvertFromListxml(Models.Listxml.Adjuster item)
{ {
var adjuster = new Adjuster var adjuster = new Adjuster
{ {
@@ -261,7 +293,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Analog"/> to <cref="Analog"/> /// Convert from <cref="Models.Listxml.Analog"/> to <cref="Analog"/>
/// </summary> /// </summary>
public static Analog ConvertFromListxml(Models.Listxml.Analog item) private static Analog ConvertFromListxml(Models.Listxml.Analog item)
{ {
var analog = new Analog var analog = new Analog
{ {
@@ -273,7 +305,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.BiosSet"/> to <cref="BiosSet"/> /// Convert from <cref="Models.Listxml.BiosSet"/> to <cref="BiosSet"/>
/// </summary> /// </summary>
public static BiosSet ConvertFromListxml(Models.Listxml.BiosSet item) private static BiosSet ConvertFromListxml(Models.Listxml.BiosSet item)
{ {
var biosset = new BiosSet var biosset = new BiosSet
{ {
@@ -287,7 +319,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Chip"/> to <cref="Chip"/> /// Convert from <cref="Models.Listxml.Chip"/> to <cref="Chip"/>
/// </summary> /// </summary>
public static Chip ConvertFromListxml(Models.Listxml.Chip item) private static Chip ConvertFromListxml(Models.Listxml.Chip item)
{ {
var chip = new Chip var chip = new Chip
{ {
@@ -303,7 +335,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Condition"/> to <cref="Condition"/> /// Convert from <cref="Models.Listxml.Condition"/> to <cref="Condition"/>
/// </summary> /// </summary>
public static Condition ConvertFromListxml(Models.Listxml.Condition item) private static Condition ConvertFromListxml(Models.Listxml.Condition item)
{ {
var condition = new Condition var condition = new Condition
{ {
@@ -318,7 +350,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Configuration"/> to <cref="Configuration"/> /// Convert from <cref="Models.Listxml.Configuration"/> to <cref="Configuration"/>
/// </summary> /// </summary>
public static Configuration ConvertFromListxml(Models.Listxml.Configuration item) private static Configuration ConvertFromListxml(Models.Listxml.Configuration item)
{ {
var configuration = new Configuration var configuration = new Configuration
{ {
@@ -356,7 +388,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.ConfLocation"/> to <cref="ConfLocation"/> /// Convert from <cref="Models.Listxml.ConfLocation"/> to <cref="ConfLocation"/>
/// </summary> /// </summary>
public static ConfLocation ConvertFromListxml(Models.Listxml.ConfLocation item) private static ConfLocation ConvertFromListxml(Models.Listxml.ConfLocation item)
{ {
var confLocation = new ConfLocation var confLocation = new ConfLocation
{ {
@@ -370,7 +402,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.ConfSetting"/> to <cref="ConfSetting"/> /// Convert from <cref="Models.Listxml.ConfSetting"/> to <cref="ConfSetting"/>
/// </summary> /// </summary>
public static ConfSetting ConvertFromListxml(Models.Listxml.ConfSetting item) private static ConfSetting ConvertFromListxml(Models.Listxml.ConfSetting item)
{ {
var confSetting = new ConfSetting var confSetting = new ConfSetting
{ {
@@ -388,7 +420,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Control"/> to <cref="Control"/> /// Convert from <cref="Models.Listxml.Control"/> to <cref="Control"/>
/// </summary> /// </summary>
public static Control ConvertFromListxml(Models.Listxml.Control item) private static Control ConvertFromListxml(Models.Listxml.Control item)
{ {
var control = new Control var control = new Control
{ {
@@ -411,7 +443,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Device"/> to <cref="Device"/> /// Convert from <cref="Models.Listxml.Device"/> to <cref="Device"/>
/// </summary> /// </summary>
public static Device ConvertFromListxml(Models.Listxml.Device item) private static Device ConvertFromListxml(Models.Listxml.Device item)
{ {
var device = new Device var device = new Device
{ {
@@ -441,7 +473,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.DeviceRef"/> to <cref="DeviceRef"/> /// Convert from <cref="Models.Listxml.DeviceRef"/> to <cref="DeviceRef"/>
/// </summary> /// </summary>
public static DeviceRef ConvertFromListxml(Models.Listxml.DeviceRef item) private static DeviceRef ConvertFromListxml(Models.Listxml.DeviceRef item)
{ {
var deviceRef = new DeviceRef var deviceRef = new DeviceRef
{ {
@@ -453,7 +485,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.DipLocation"/> to <cref="DipLocation"/> /// Convert from <cref="Models.Listxml.DipLocation"/> to <cref="DipLocation"/>
/// </summary> /// </summary>
public static DipLocation ConvertFromListxml(Models.Listxml.DipLocation item) private static DipLocation ConvertFromListxml(Models.Listxml.DipLocation item)
{ {
var dipLocation = new DipLocation var dipLocation = new DipLocation
{ {
@@ -467,7 +499,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.DipSwitch"/> to <cref="DipSwitch"/> /// Convert from <cref="Models.Listxml.DipSwitch"/> to <cref="DipSwitch"/>
/// </summary> /// </summary>
public static DipSwitch ConvertFromListxml(Models.Listxml.DipSwitch item) private static DipSwitch ConvertFromListxml(Models.Listxml.DipSwitch item)
{ {
var dipSwitch = new DipSwitch var dipSwitch = new DipSwitch
{ {
@@ -505,7 +537,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.DipValue"/> to <cref="DipValue"/> /// Convert from <cref="Models.Listxml.DipValue"/> to <cref="DipValue"/>
/// </summary> /// </summary>
public static DipValue ConvertFromListxml(Models.Listxml.DipValue item) private static DipValue ConvertFromListxml(Models.Listxml.DipValue item)
{ {
var dipValue = new DipValue var dipValue = new DipValue
{ {
@@ -523,7 +555,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Disk"/> to <cref="Disk"/> /// Convert from <cref="Models.Listxml.Disk"/> to <cref="Disk"/>
/// </summary> /// </summary>
public static Disk ConvertFromListxml(Models.Listxml.Disk item) private static Disk ConvertFromListxml(Models.Listxml.Disk item)
{ {
var disk = new Disk var disk = new Disk
{ {
@@ -543,7 +575,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Display"/> to <cref="Display"/> /// Convert from <cref="Models.Listxml.Display"/> to <cref="Display"/>
/// </summary> /// </summary>
public static Display ConvertFromListxml(Models.Listxml.Display item) private static Display ConvertFromListxml(Models.Listxml.Display item)
{ {
var display = new Display var display = new Display
{ {
@@ -568,7 +600,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Driver"/> to <cref="Driver"/> /// Convert from <cref="Models.Listxml.Driver"/> to <cref="Driver"/>
/// </summary> /// </summary>
public static Driver ConvertFromListxml(Models.Listxml.Driver item) private static Driver ConvertFromListxml(Models.Listxml.Driver item)
{ {
var driver = new Driver var driver = new Driver
{ {
@@ -590,7 +622,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Extension"/> to <cref="Extension"/> /// Convert from <cref="Models.Listxml.Extension"/> to <cref="Extension"/>
/// </summary> /// </summary>
public static Extension ConvertFromListxml(Models.Listxml.Extension item) private static Extension ConvertFromListxml(Models.Listxml.Extension item)
{ {
var extension = new Extension var extension = new Extension
{ {
@@ -602,7 +634,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Feature"/> to <cref="Feature"/> /// Convert from <cref="Models.Listxml.Feature"/> to <cref="Feature"/>
/// </summary> /// </summary>
public static Feature ConvertFromListxml(Models.Listxml.Feature item) private static Feature ConvertFromListxml(Models.Listxml.Feature item)
{ {
var feature = new Feature var feature = new Feature
{ {
@@ -616,7 +648,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Input"/> to <cref="Input"/> /// Convert from <cref="Models.Listxml.Input"/> to <cref="Input"/>
/// </summary> /// </summary>
public static Input ConvertFromListxml(Models.Listxml.Input item) private static Input ConvertFromListxml(Models.Listxml.Input item)
{ {
var input = new Input var input = new Input
{ {
@@ -644,7 +676,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Instance"/> to <cref="Instance"/> /// Convert from <cref="Models.Listxml.Instance"/> to <cref="Instance"/>
/// </summary> /// </summary>
public static Instance ConvertFromListxml(Models.Listxml.Instance item) private static Instance ConvertFromListxml(Models.Listxml.Instance item)
{ {
var instance = new Instance var instance = new Instance
{ {
@@ -657,7 +689,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Port"/> to <cref="Port"/> /// Convert from <cref="Models.Listxml.Port"/> to <cref="Port"/>
/// </summary> /// </summary>
public static Port ConvertFromListxml(Models.Listxml.Port item) private static Port ConvertFromListxml(Models.Listxml.Port item)
{ {
var port = new Port var port = new Port
{ {
@@ -680,7 +712,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.RamOption"/> to <cref="RamOption"/> /// Convert from <cref="Models.Listxml.RamOption"/> to <cref="RamOption"/>
/// </summary> /// </summary>
public static RamOption ConvertFromListxml(Models.Listxml.RamOption item) private static RamOption ConvertFromListxml(Models.Listxml.RamOption item)
{ {
var ramOption = new RamOption var ramOption = new RamOption
{ {
@@ -693,7 +725,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Rom"/> to <cref="Rom"/> /// Convert from <cref="Models.Listxml.Rom"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromListxml(Models.Listxml.Rom item) private static Rom ConvertFromListxml(Models.Listxml.Rom item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -716,7 +748,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Sample"/> to <cref="Sample"/> /// Convert from <cref="Models.Listxml.Sample"/> to <cref="Sample"/>
/// </summary> /// </summary>
public static Sample ConvertFromListxml(Models.Listxml.Sample item) private static Sample ConvertFromListxml(Models.Listxml.Sample item)
{ {
var sample = new Sample var sample = new Sample
{ {
@@ -728,7 +760,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Slot"/> to <cref="Slot"/> /// Convert from <cref="Models.Listxml.Slot"/> to <cref="Slot"/>
/// </summary> /// </summary>
public static Slot ConvertFromListxml(Models.Listxml.Slot item) private static Slot ConvertFromListxml(Models.Listxml.Slot item)
{ {
var slot = new Slot var slot = new Slot
{ {
@@ -751,7 +783,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.SlotOption"/> to <cref="SlotOption"/> /// Convert from <cref="Models.Listxml.SlotOption"/> to <cref="SlotOption"/>
/// </summary> /// </summary>
public static SlotOption ConvertFromListxml(Models.Listxml.SlotOption item) private static SlotOption ConvertFromListxml(Models.Listxml.SlotOption item)
{ {
var slotOption = new SlotOption var slotOption = new SlotOption
{ {
@@ -765,7 +797,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.SoftwareList"/> to <cref="SoftwareList"/> /// Convert from <cref="Models.Listxml.SoftwareList"/> to <cref="SoftwareList"/>
/// </summary> /// </summary>
public static SoftwareList ConvertFromListxml(Models.Listxml.SoftwareList item) private static SoftwareList ConvertFromListxml(Models.Listxml.SoftwareList item)
{ {
var softwareList = new SoftwareList var softwareList = new SoftwareList
{ {
@@ -780,7 +812,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Sound"/> to <cref="Sound"/> /// Convert from <cref="Models.Listxml.Sound"/> to <cref="Sound"/>
/// </summary> /// </summary>
public static Sound ConvertFromListxml(Models.Listxml.Sound item) private static Sound ConvertFromListxml(Models.Listxml.Sound item)
{ {
var sound = new Sound var sound = new Sound
{ {
@@ -792,7 +824,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Listxml.Video"/> to <cref="Video"/> /// Convert from <cref="Models.Listxml.Video"/> to <cref="Video"/>
/// </summary> /// </summary>
public static Video ConvertFromListxml(Models.Listxml.Video item) private static Video ConvertFromListxml(Models.Listxml.Video item)
{ {
var video = new Video var video = new Video
{ {

View File

@@ -11,10 +11,41 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.Logiqx.Datafile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Datafile"/> to <cref="Header"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Header"/> to <cref="Header"/> /// Convert from <cref="Models.Logiqx.Header"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromLogiqx(Models.Logiqx.Header item) private static Header ConvertHeaderFromLogiqx(Models.Logiqx.Header item)
{ {
var header = new Header var header = new Header
{ {
@@ -58,7 +89,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.GameBase"/> to <cref="Machine"/> /// Convert from <cref="Models.Logiqx.GameBase"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromLogiqx(Models.Logiqx.GameBase item) private static Machine ConvertMachineFromLogiqx(Models.Logiqx.GameBase item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -190,7 +221,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Archive"/> to <cref="Archive"/> /// Convert from <cref="Models.Logiqx.Archive"/> to <cref="Archive"/>
/// </summary> /// </summary>
public static Archive ConvertFromLogiqx(Models.Logiqx.Archive item) private static Archive ConvertFromLogiqx(Models.Logiqx.Archive item)
{ {
var archive = new Archive var archive = new Archive
{ {
@@ -202,7 +233,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.BiosSet"/> to <cref="BiosSet"/> /// Convert from <cref="Models.Logiqx.BiosSet"/> to <cref="BiosSet"/>
/// </summary> /// </summary>
public static BiosSet ConvertFromLogiqx(Models.Logiqx.BiosSet item) private static BiosSet ConvertFromLogiqx(Models.Logiqx.BiosSet item)
{ {
var biosset = new BiosSet var biosset = new BiosSet
{ {
@@ -216,7 +247,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.DeviceRef"/> to <cref="DeviceRef"/> /// Convert from <cref="Models.Logiqx.DeviceRef"/> to <cref="DeviceRef"/>
/// </summary> /// </summary>
public static DeviceRef ConvertFromLogiqx(Models.Logiqx.DeviceRef item) private static DeviceRef ConvertFromLogiqx(Models.Logiqx.DeviceRef item)
{ {
var deviceRef = new DeviceRef var deviceRef = new DeviceRef
{ {
@@ -228,7 +259,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Disk"/> to <cref="Disk"/> /// Convert from <cref="Models.Logiqx.Disk"/> to <cref="Disk"/>
/// </summary> /// </summary>
public static Disk ConvertFromLogiqx(Models.Logiqx.Disk item) private static Disk ConvertFromLogiqx(Models.Logiqx.Disk item)
{ {
var disk = new Disk var disk = new Disk
{ {
@@ -245,7 +276,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Driver"/> to <cref="Driver"/> /// Convert from <cref="Models.Logiqx.Driver"/> to <cref="Driver"/>
/// </summary> /// </summary>
public static Driver ConvertFromLogiqx(Models.Logiqx.Driver item) private static Driver ConvertFromLogiqx(Models.Logiqx.Driver item)
{ {
var driver = new Driver var driver = new Driver
{ {
@@ -264,7 +295,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Media"/> to <cref="Media"/> /// Convert from <cref="Models.Logiqx.Media"/> to <cref="Media"/>
/// </summary> /// </summary>
public static Media ConvertFromLogiqx(Models.Logiqx.Media item) private static Media ConvertFromLogiqx(Models.Logiqx.Media item)
{ {
var media = new Media var media = new Media
{ {
@@ -280,7 +311,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Release"/> to <cref="Release"/> /// Convert from <cref="Models.Logiqx.Release"/> to <cref="Release"/>
/// </summary> /// </summary>
public static Release ConvertFromLogiqx(Models.Logiqx.Release item) private static Release ConvertFromLogiqx(Models.Logiqx.Release item)
{ {
var release = new Release var release = new Release
{ {
@@ -296,7 +327,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Rom"/> to <cref="Rom"/> /// Convert from <cref="Models.Logiqx.Rom"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromLogiqx(Models.Logiqx.Rom item) private static Rom ConvertFromLogiqx(Models.Logiqx.Rom item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -325,7 +356,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.Sample"/> to <cref="Sample"/> /// Convert from <cref="Models.Logiqx.Sample"/> to <cref="Sample"/>
/// </summary> /// </summary>
public static Sample ConvertFromLogiqx(Models.Logiqx.Sample item) private static Sample ConvertFromLogiqx(Models.Logiqx.Sample item)
{ {
var sample = new Sample var sample = new Sample
{ {
@@ -337,7 +368,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.Logiqx.SoftwareList"/> to <cref="SoftwareList"/> /// Convert from <cref="Models.Logiqx.SoftwareList"/> to <cref="SoftwareList"/>
/// </summary> /// </summary>
public static SoftwareList ConvertFromLogiqx(Models.Logiqx.SoftwareList item) private static SoftwareList ConvertFromLogiqx(Models.Logiqx.SoftwareList item)
{ {
var softwareList = new SoftwareList var softwareList = new SoftwareList
{ {

View File

@@ -11,14 +11,30 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.OfflineList.Dat"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.OfflineList.Dat"/> to <cref="Header"/> /// Convert from <cref="Models.OfflineList.Dat"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromOfflineList(Models.OfflineList.Dat item) private static Header ConvertHeaderFromOfflineList(Models.OfflineList.Dat item)
{ {
var header = new Header var header = new Header
{ {
[Header.NoNamespaceSchemaLocationKey] = item.NoNamespaceSchemaLocation, [Header.SchemaLocationKey] = item.NoNamespaceSchemaLocation,
}; };
if (item.Configuration != null) if (item.Configuration != null)
@@ -47,7 +63,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.OfflineList.Game"/> to <cref="Machine"/> /// Convert from <cref="Models.OfflineList.Game"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromOfflineList(Models.OfflineList.Game item) private static Machine ConvertMachineFromOfflineList(Models.OfflineList.Game item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -80,23 +96,10 @@ namespace SabreTools.Serialization
return machine; return machine;
} }
/// <summary>
/// Convert from <cref="Models.OfflineList.Files"/> to an array of <cref="Rom"/>
/// </summary>
public static Rom[] ConvertFromOfflineList(Models.OfflineList.Files item)
{
var roms = new List<Rom>();
foreach (var romCRC in item.RomCRC)
{
roms.Add(ConvertFromOfflineList(romCRC));
}
return roms.ToArray();
}
/// <summary> /// <summary>
/// Convert from <cref="Models.OfflineList.FileRomCRC"/> to <cref="Rom"/> /// Convert from <cref="Models.OfflineList.FileRomCRC"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromOfflineList(Models.OfflineList.FileRomCRC item) private static Rom ConvertFromOfflineList(Models.OfflineList.FileRomCRC item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -120,7 +123,7 @@ namespace SabreTools.Serialization
var dat = new Models.OfflineList.Dat var dat = new Models.OfflineList.Dat
{ {
NoNamespaceSchemaLocation = item.ReadString(Header.NoNamespaceSchemaLocationKey), NoNamespaceSchemaLocation = item.ReadString(Header.SchemaLocationKey),
}; };
if (item.ContainsKey(Header.NameKey) if (item.ContainsKey(Header.NameKey)

View File

@@ -11,6 +11,22 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.OpenMSX.SoftwareDb"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.OpenMSX.SoftwareDb"/> to <cref="Header"/> /// Convert from <cref="Models.OpenMSX.SoftwareDb"/> to <cref="Header"/>
/// </summary> /// </summary>

View File

@@ -10,10 +10,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.RomCenter.MetadataFile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.RomCenter.MetadataFile"/> to <cref="Header"/> /// Convert from <cref="Models.RomCenter.MetadataFile"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromRomCenter(Models.RomCenter.MetadataFile item) private static Header ConvertHeaderFromRomCenter(Models.RomCenter.MetadataFile item)
{ {
var header = new Header(); var header = new Header();
@@ -51,7 +67,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.RomCenter.Game"/> to <cref="Machine"/> /// Convert from <cref="Models.RomCenter.Game"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromRomCenter(Models.RomCenter.Rom item) private static Machine ConvertMachineFromRomCenter(Models.RomCenter.Rom item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -68,7 +84,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.RomCenter.Rom"/> to <cref="Rom"/> /// Convert from <cref="Models.RomCenter.Rom"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromRomCenter(Models.RomCenter.Rom item) private static Rom ConvertFromRomCenter(Models.RomCenter.Rom item)
{ {
var rom = new Rom var rom = new Rom
{ {

View File

@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.SeparatedValue.MetadataFile"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.SeparatedValue.MetadataFile"/> to <cref="Header"/> /// Convert from <cref="Models.SeparatedValue.MetadataFile"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromSeparatedValue(Models.SeparatedValue.MetadataFile item) private static Header ConvertHeaderFromSeparatedValue(Models.SeparatedValue.MetadataFile item)
{ {
var header = new Header var header = new Header
{ {
@@ -35,7 +51,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="Machine"/> /// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromSeparatedValue(Models.SeparatedValue.Row item) private static Machine ConvertMachineFromSeparatedValue(Models.SeparatedValue.Row item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -65,7 +81,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="DatItem"/> /// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="DatItem"/>
/// </summary> /// </summary>
public static DatItem? ConvertFromSeparatedValue(Models.SeparatedValue.Row item) private static DatItem? ConvertFromSeparatedValue(Models.SeparatedValue.Row item)
{ {
return item.Type switch return item.Type switch
{ {

View File

@@ -11,10 +11,26 @@ namespace SabreTools.Serialization
{ {
#region Serialize #region Serialize
/// <summary>
/// Convert from <cref="Models.SoftwareList.SoftwareList"/> to <cref="MetadataFile"/>
/// </summary>
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;
}
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.SoftwareList"/> to <cref="Header"/> /// Convert from <cref="Models.SoftwareList.SoftwareList"/> to <cref="Header"/>
/// </summary> /// </summary>
public static Header ConvertHeaderFromSoftwareList(Models.SoftwareList.SoftwareList item) private static Header ConvertHeaderFromSoftwareList(Models.SoftwareList.SoftwareList item)
{ {
var header = new Header var header = new Header
{ {
@@ -28,7 +44,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.Software"/> to <cref="Machine"/> /// Convert from <cref="Models.SoftwareList.Software"/> to <cref="Machine"/>
/// </summary> /// </summary>
public static Machine ConvertMachineFromSoftwareList(Models.SoftwareList.Software item) private static Machine ConvertMachineFromSoftwareList(Models.SoftwareList.Software item)
{ {
var machine = new Machine var machine = new Machine
{ {
@@ -77,7 +93,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.DataArea"/> to <cref="DataArea"/> /// Convert from <cref="Models.SoftwareList.DataArea"/> to <cref="DataArea"/>
/// </summary> /// </summary>
public static DataArea ConvertFromSoftwareList(Models.SoftwareList.DataArea item) private static DataArea ConvertFromSoftwareList(Models.SoftwareList.DataArea item)
{ {
var dataArea = new DataArea var dataArea = new DataArea
{ {
@@ -103,7 +119,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.DipSwitch"/> to <cref="DipSwitch"/> /// Convert from <cref="Models.SoftwareList.DipSwitch"/> to <cref="DipSwitch"/>
/// </summary> /// </summary>
public static DipSwitch ConvertFromSoftwareList(Models.SoftwareList.DipSwitch item) private static DipSwitch ConvertFromSoftwareList(Models.SoftwareList.DipSwitch item)
{ {
var dipSwitch = new DipSwitch var dipSwitch = new DipSwitch
{ {
@@ -128,7 +144,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.DipValue"/> to <cref="DipValue"/> /// Convert from <cref="Models.SoftwareList.DipValue"/> to <cref="DipValue"/>
/// </summary> /// </summary>
public static DipValue ConvertFromSoftwareList(Models.SoftwareList.DipValue item) private static DipValue ConvertFromSoftwareList(Models.SoftwareList.DipValue item)
{ {
var dipValue = new DipValue var dipValue = new DipValue
{ {
@@ -142,7 +158,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.Disk"/> to <cref="Disk"/> /// Convert from <cref="Models.SoftwareList.Disk"/> to <cref="Disk"/>
/// </summary> /// </summary>
public static Disk ConvertFromSoftwareList(Models.SoftwareList.Disk item) private static Disk ConvertFromSoftwareList(Models.SoftwareList.Disk item)
{ {
var disk = new Disk var disk = new Disk
{ {
@@ -158,7 +174,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.DiskArea"/> to <cref="DiskArea"/> /// Convert from <cref="Models.SoftwareList.DiskArea"/> to <cref="DiskArea"/>
/// </summary> /// </summary>
public static DiskArea ConvertFromSoftwareList(Models.SoftwareList.DiskArea item) private static DiskArea ConvertFromSoftwareList(Models.SoftwareList.DiskArea item)
{ {
var diskArea = new DiskArea var diskArea = new DiskArea
{ {
@@ -181,7 +197,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.Feature"/> to <cref="Feature"/> /// Convert from <cref="Models.SoftwareList.Feature"/> to <cref="Feature"/>
/// </summary> /// </summary>
public static Feature ConvertFromSoftwareList(Models.SoftwareList.Feature item) private static Feature ConvertFromSoftwareList(Models.SoftwareList.Feature item)
{ {
var feature = new Feature var feature = new Feature
{ {
@@ -194,7 +210,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.Info"/> to <cref="Info"/> /// Convert from <cref="Models.SoftwareList.Info"/> to <cref="Info"/>
/// </summary> /// </summary>
public static Info ConvertFromSoftwareList(Models.SoftwareList.Info item) private static Info ConvertFromSoftwareList(Models.SoftwareList.Info item)
{ {
var info = new Info var info = new Info
{ {
@@ -207,7 +223,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.Part"/> to <cref="Part"/> /// Convert from <cref="Models.SoftwareList.Part"/> to <cref="Part"/>
/// </summary> /// </summary>
public static Part ConvertFromSoftwareList(Models.SoftwareList.Part item) private static Part ConvertFromSoftwareList(Models.SoftwareList.Part item)
{ {
var part = new Part var part = new Part
{ {
@@ -261,7 +277,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.Rom"/> to <cref="Rom"/> /// Convert from <cref="Models.SoftwareList.Rom"/> to <cref="Rom"/>
/// </summary> /// </summary>
public static Rom ConvertFromSoftwareList(Models.SoftwareList.Rom item) private static Rom ConvertFromSoftwareList(Models.SoftwareList.Rom item)
{ {
var rom = new Rom var rom = new Rom
{ {
@@ -281,7 +297,7 @@ namespace SabreTools.Serialization
/// <summary> /// <summary>
/// Convert from <cref="Models.SoftwareList.SharedFeat"/> to <cref="SharedFeat"/> /// Convert from <cref="Models.SoftwareList.SharedFeat"/> to <cref="SharedFeat"/>
/// </summary> /// </summary>
public static SharedFeat ConvertFromSoftwareList(Models.SoftwareList.SharedFeat item) private static SharedFeat ConvertFromSoftwareList(Models.SoftwareList.SharedFeat item)
{ {
var sharedFeat = new SharedFeat var sharedFeat = new SharedFeat
{ {