mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Add ClrMamePro deserialization test, fix issues
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>archive</remarks>
|
||||
public class Archive
|
||||
public class Archive : ItemBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string Name { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>biosset</remarks>
|
||||
public class BiosSet
|
||||
public class BiosSet : ItemBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string Name { get; set; }
|
||||
@@ -11,5 +11,12 @@ namespace SabreTools.Models.ClrMamePro
|
||||
|
||||
/// <remarks>default</remarks>
|
||||
public string? Default { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -47,5 +47,12 @@ namespace SabreTools.Models.ClrMamePro
|
||||
|
||||
/// <remarks>forcepacking</remarks>
|
||||
public string? ForcePacking { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>disk</remarks>
|
||||
public class Disk
|
||||
public class Disk : ItemBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string Name { get; set; }
|
||||
@@ -17,5 +17,15 @@ namespace SabreTools.Models.ClrMamePro
|
||||
|
||||
/// <remarks>status</remarks>
|
||||
public string? Status { get; set; }
|
||||
|
||||
/// <remarks>flags</remarks>
|
||||
public string? Flags { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,55 +1,5 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>game</remarks>
|
||||
public class Game
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>description</remarks>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <remarks>year</remarks>
|
||||
public string? Year { get; set; }
|
||||
|
||||
/// <remarks>manufacturer</remarks>
|
||||
public string? Manufacturer { get; set; }
|
||||
|
||||
/// <remarks>category</remarks>
|
||||
public string? Category { get; set; }
|
||||
|
||||
/// <remarks>cloneof</remarks>
|
||||
public string? CloneOf { get; set; }
|
||||
|
||||
/// <remarks>romof</remarks>
|
||||
public string? RomOf { get; set; }
|
||||
|
||||
/// <remarks>sampleof</remarks>
|
||||
public string? SampleOf { get; set; }
|
||||
|
||||
/// <remarks>release</remarks>
|
||||
public Release[]? Release { get; set; }
|
||||
|
||||
/// <remarks>biosset</remarks>
|
||||
public BiosSet[]? BiosSet { get; set; }
|
||||
|
||||
/// <remarks>rom</remarks>
|
||||
public Rom[]? Rom { get; set; }
|
||||
|
||||
/// <remarks>disk</remarks>
|
||||
public Disk[]? Disk { get; set; }
|
||||
|
||||
/// <remarks>sample</remarks>
|
||||
public Sample[]? Sample { get; set; }
|
||||
|
||||
/// <remarks>archive</remarks>
|
||||
public Archive[]? Archive { get; set; }
|
||||
|
||||
#region Aaru Extensions
|
||||
|
||||
/// <remarks>media; Appears after Disk</remarks>
|
||||
public Media[]? Media { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
public class Game : GameBase { }
|
||||
}
|
||||
42
SabreTools.Models/ClrMamePro/GameBase.cs
Normal file
42
SabreTools.Models/ClrMamePro/GameBase.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class to unify the various game-like types
|
||||
/// </summary>
|
||||
public abstract class GameBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>description</remarks>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <remarks>year</remarks>
|
||||
public string? Year { get; set; }
|
||||
|
||||
/// <remarks>manufacturer</remarks>
|
||||
public string? Manufacturer { get; set; }
|
||||
|
||||
/// <remarks>category</remarks>
|
||||
public string? Category { get; set; }
|
||||
|
||||
/// <remarks>cloneof</remarks>
|
||||
public string? CloneOf { get; set; }
|
||||
|
||||
/// <remarks>romof</remarks>
|
||||
public string? RomOf { get; set; }
|
||||
|
||||
/// <remarks>sampleof</remarks>
|
||||
public string? SampleOf { get; set; }
|
||||
|
||||
/// <remarks>release, biosset, rom, disk, media, sample, archive</remarks>
|
||||
public ItemBase[]? Item { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
7
SabreTools.Models/ClrMamePro/ItemBase.cs
Normal file
7
SabreTools.Models/ClrMamePro/ItemBase.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class to unify the various item types
|
||||
/// </summary>
|
||||
public abstract class ItemBase { }
|
||||
}
|
||||
@@ -1,55 +1,5 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>machine</remarks>
|
||||
public class Machine
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>description</remarks>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <remarks>year</remarks>
|
||||
public string? Year { get; set; }
|
||||
|
||||
/// <remarks>manufacturer</remarks>
|
||||
public string? Manufacturer { get; set; }
|
||||
|
||||
/// <remarks>category</remarks>
|
||||
public string? Category { get; set; }
|
||||
|
||||
/// <remarks>cloneof</remarks>
|
||||
public string? CloneOf { get; set; }
|
||||
|
||||
/// <remarks>romof</remarks>
|
||||
public string? RomOf { get; set; }
|
||||
|
||||
/// <remarks>sampleof</remarks>
|
||||
public string? SampleOf { get; set; }
|
||||
|
||||
/// <remarks>release</remarks>
|
||||
public Release[]? Release { get; set; }
|
||||
|
||||
/// <remarks>biosset</remarks>
|
||||
public BiosSet[]? BiosSet { get; set; }
|
||||
|
||||
/// <remarks>rom</remarks>
|
||||
public Rom[]? Rom { get; set; }
|
||||
|
||||
/// <remarks>disk</remarks>
|
||||
public Disk[]? Disk { get; set; }
|
||||
|
||||
/// <remarks>sample</remarks>
|
||||
public Sample[]? Sample { get; set; }
|
||||
|
||||
/// <remarks>archive</remarks>
|
||||
public Archive[]? Archive { get; set; }
|
||||
|
||||
#region Aaru Extensions
|
||||
|
||||
/// <remarks>media; Appears after Disk</remarks>
|
||||
public Media[]? Media { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
public class Machine : GameBase { }
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>media</remarks>
|
||||
public class Media
|
||||
public class Media : ItemBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string Name { get; set; }
|
||||
@@ -17,5 +17,12 @@ namespace SabreTools.Models.ClrMamePro
|
||||
|
||||
/// <remarks>spamsum</remarks>
|
||||
public string? SpamSum { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
18
SabreTools.Models/ClrMamePro/MetadataFile.cs
Normal file
18
SabreTools.Models/ClrMamePro/MetadataFile.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
public class MetadataFile
|
||||
{
|
||||
/// <remarks>clrmamepro</remarks>
|
||||
public ClrMamePro? ClrMamePro { get; set; }
|
||||
|
||||
/// <remarks>game, machine, resource, set</remarks>
|
||||
public GameBase[]? Game { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>release</remarks>
|
||||
public class Release
|
||||
public class Release : ItemBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string Name { get; set; }
|
||||
@@ -17,5 +17,12 @@ namespace SabreTools.Models.ClrMamePro
|
||||
|
||||
/// <remarks>default</remarks>
|
||||
public string? Default { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,55 +1,5 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>resource</remarks>
|
||||
public class Resource
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>description</remarks>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <remarks>year</remarks>
|
||||
public string? Year { get; set; }
|
||||
|
||||
/// <remarks>manufacturer</remarks>
|
||||
public string? Manufacturer { get; set; }
|
||||
|
||||
/// <remarks>category</remarks>
|
||||
public string? Category { get; set; }
|
||||
|
||||
/// <remarks>cloneof</remarks>
|
||||
public string? CloneOf { get; set; }
|
||||
|
||||
/// <remarks>romof</remarks>
|
||||
public string? RomOf { get; set; }
|
||||
|
||||
/// <remarks>sampleof</remarks>
|
||||
public string? SampleOf { get; set; }
|
||||
|
||||
/// <remarks>release</remarks>
|
||||
public Release[]? Release { get; set; }
|
||||
|
||||
/// <remarks>biosset</remarks>
|
||||
public BiosSet[]? BiosSet { get; set; }
|
||||
|
||||
/// <remarks>rom</remarks>
|
||||
public Rom[]? Rom { get; set; }
|
||||
|
||||
/// <remarks>disk</remarks>
|
||||
public Disk[]? Disk { get; set; }
|
||||
|
||||
/// <remarks>sample</remarks>
|
||||
public Sample[]? Sample { get; set; }
|
||||
|
||||
/// <remarks>archive</remarks>
|
||||
public Archive[]? Archive { get; set; }
|
||||
|
||||
#region Aaru Extensions
|
||||
|
||||
/// <remarks>media; Appears after Disk</remarks>
|
||||
public Media[]? Media { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
public class Resource : GameBase { }
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>rom</remarks>
|
||||
public class Rom
|
||||
public class Rom : ItemBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <remarks>size</remarks>
|
||||
public long Size { get; set; }
|
||||
/// <remarks>size, Numeric</remarks>
|
||||
public string Size { get; set; }
|
||||
|
||||
/// <remarks>crc</remarks>
|
||||
public string? CRC { get; set; }
|
||||
@@ -24,6 +24,9 @@ namespace SabreTools.Models.ClrMamePro
|
||||
/// <remarks>status</remarks>
|
||||
public string? Status { get; set; }
|
||||
|
||||
/// <remarks>flags</remarks>
|
||||
public string? Flags { get; set; }
|
||||
|
||||
/// <remarks>date</remarks>
|
||||
public string? Date { get; set; }
|
||||
|
||||
@@ -66,10 +69,17 @@ namespace SabreTools.Models.ClrMamePro
|
||||
#region RomVault Extensions
|
||||
|
||||
/// <remarks>inverted; Boolean; Appears after Date</remarks>
|
||||
public bool? Inverted { get; set; }
|
||||
public string? Inverted { get; set; }
|
||||
|
||||
/// <remarks>mia; Boolean; Appears after Inverted</remarks>
|
||||
public bool? MIA { get; set; }
|
||||
public string? MIA { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>sample</remarks>
|
||||
public class Sample
|
||||
public class Sample : ItemBase
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string Name { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,55 +1,5 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>set</remarks>
|
||||
public class Set
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>description</remarks>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <remarks>year</remarks>
|
||||
public string? Year { get; set; }
|
||||
|
||||
/// <remarks>manufacturer</remarks>
|
||||
public string? Manufacturer { get; set; }
|
||||
|
||||
/// <remarks>category</remarks>
|
||||
public string? Category { get; set; }
|
||||
|
||||
/// <remarks>cloneof</remarks>
|
||||
public string? CloneOf { get; set; }
|
||||
|
||||
/// <remarks>romof</remarks>
|
||||
public string? RomOf { get; set; }
|
||||
|
||||
/// <remarks>sampleof</remarks>
|
||||
public string? SampleOf { get; set; }
|
||||
|
||||
/// <remarks>release</remarks>
|
||||
public Release[]? Release { get; set; }
|
||||
|
||||
/// <remarks>biosset</remarks>
|
||||
public BiosSet[]? BiosSet { get; set; }
|
||||
|
||||
/// <remarks>rom</remarks>
|
||||
public Rom[]? Rom { get; set; }
|
||||
|
||||
/// <remarks>disk</remarks>
|
||||
public Disk[]? Disk { get; set; }
|
||||
|
||||
/// <remarks>sample</remarks>
|
||||
public Sample[]? Sample { get; set; }
|
||||
|
||||
/// <remarks>archive</remarks>
|
||||
public Archive[]? Archive { get; set; }
|
||||
|
||||
#region Aaru Extensions
|
||||
|
||||
/// <remarks>media; Appears after Disk</remarks>
|
||||
public Media[]? Media { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
public class Set : GameBase { }
|
||||
}
|
||||
Reference in New Issue
Block a user