Migrate to Nuget package for models

This commit is contained in:
Matt Nadareski
2023-09-04 23:51:37 -04:00
parent 5044dea02a
commit 7d1cfc1340
281 changed files with 2656 additions and 9896 deletions

View File

@@ -12,16 +12,16 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to an array of <cref="Models.ArchiveDotOrg.Files"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to an array of <cref="Models.ArchiveDotOrg.Files"/>
/// </summary>
public static Files? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static Files? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var files = new Files();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
files.File = machines
@@ -34,11 +34,11 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to an array of <cref="Models.ArchiveDotOrg.File"/>
/// Convert from <cref="Models.Metadata.Machine"/> to an array of <cref="Models.ArchiveDotOrg.File"/>
/// </summary>
private static File[] ConvertFromInternalModel(Models.Internal.Machine item)
private static File[] ConvertFromInternalModel(Models.Metadata.Machine item)
{
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms == null)
return Array.Empty<File>();
@@ -48,74 +48,74 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.ArchiveDotOrg.File"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.ArchiveDotOrg.File"/>
/// </summary>
private static File ConvertFromInternalModel(Models.Internal.Rom item)
private static File ConvertFromInternalModel(Models.Metadata.Rom item)
{
var file = new File
{
Name = item.ReadString(Models.Internal.Rom.NameKey),
Source = item.ReadString(Models.Internal.Rom.SourceKey),
BitTorrentMagnetHash = item.ReadString(Models.Internal.Rom.BitTorrentMagnetHashKey),
LastModifiedTime = item.ReadString(Models.Internal.Rom.LastModifiedTimeKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
MD5 = item.ReadString(Models.Internal.Rom.MD5Key),
CRC32 = item.ReadString(Models.Internal.Rom.CRCKey),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
FileCount = item.ReadString(Models.Internal.Rom.FileCountKey),
Format = item.ReadString(Models.Internal.Rom.FormatKey),
Original = item.ReadString(Models.Internal.Rom.OriginalKey),
Summation = item.ReadString(Models.Internal.Rom.SummationKey),
MatrixNumber = item.ReadString(Models.Internal.Rom.MatrixNumberKey),
CollectionCatalogNumber = item.ReadString(Models.Internal.Rom.CollectionCatalogNumberKey),
Comment = item.ReadString(Models.Internal.Rom.CommentKey),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
Source = item.ReadString(Models.Metadata.Rom.SourceKey),
BitTorrentMagnetHash = item.ReadString(Models.Metadata.Rom.BitTorrentMagnetHashKey),
LastModifiedTime = item.ReadString(Models.Metadata.Rom.LastModifiedTimeKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
MD5 = item.ReadString(Models.Metadata.Rom.MD5Key),
CRC32 = item.ReadString(Models.Metadata.Rom.CRCKey),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
FileCount = item.ReadString(Models.Metadata.Rom.FileCountKey),
Format = item.ReadString(Models.Metadata.Rom.FormatKey),
Original = item.ReadString(Models.Metadata.Rom.OriginalKey),
Summation = item.ReadString(Models.Metadata.Rom.SummationKey),
MatrixNumber = item.ReadString(Models.Metadata.Rom.MatrixNumberKey),
CollectionCatalogNumber = item.ReadString(Models.Metadata.Rom.CollectionCatalogNumberKey),
Comment = item.ReadString(Models.Metadata.Rom.CommentKey),
ASRDetectedLang = item.ReadString(Models.Internal.Rom.ASRDetectedLangKey),
ASRDetectedLangConf = item.ReadString(Models.Internal.Rom.ASRDetectedLangConfKey),
ASRTranscribedLang = item.ReadString(Models.Internal.Rom.ASRTranscribedLangKey),
WhisperASRModuleVersion = item.ReadString(Models.Internal.Rom.WhisperASRModuleVersionKey),
WhisperModelHash = item.ReadString(Models.Internal.Rom.WhisperModelHashKey),
WhisperModelName = item.ReadString(Models.Internal.Rom.WhisperModelNameKey),
WhisperVersion = item.ReadString(Models.Internal.Rom.WhisperVersionKey),
ASRDetectedLang = item.ReadString(Models.Metadata.Rom.ASRDetectedLangKey),
ASRDetectedLangConf = item.ReadString(Models.Metadata.Rom.ASRDetectedLangConfKey),
ASRTranscribedLang = item.ReadString(Models.Metadata.Rom.ASRTranscribedLangKey),
WhisperASRModuleVersion = item.ReadString(Models.Metadata.Rom.WhisperASRModuleVersionKey),
WhisperModelHash = item.ReadString(Models.Metadata.Rom.WhisperModelHashKey),
WhisperModelName = item.ReadString(Models.Metadata.Rom.WhisperModelNameKey),
WhisperVersion = item.ReadString(Models.Metadata.Rom.WhisperVersionKey),
ClothCoverDetectionModuleVersion = item.ReadString(Models.Internal.Rom.ClothCoverDetectionModuleVersionKey),
hOCRCharToWordhOCRVersion = item.ReadString(Models.Internal.Rom.hOCRCharToWordhOCRVersionKey),
hOCRCharToWordModuleVersion = item.ReadString(Models.Internal.Rom.hOCRCharToWordModuleVersionKey),
hOCRFtsTexthOCRVersion = item.ReadString(Models.Internal.Rom.hOCRFtsTexthOCRVersionKey),
hOCRFtsTextModuleVersion = item.ReadString(Models.Internal.Rom.hOCRFtsTextModuleVersionKey),
hOCRPageIndexhOCRVersion = item.ReadString(Models.Internal.Rom.hOCRPageIndexhOCRVersionKey),
hOCRPageIndexModuleVersion = item.ReadString(Models.Internal.Rom.hOCRPageIndexModuleVersionKey),
TesseractOCR = item.ReadString(Models.Internal.Rom.TesseractOCRKey),
TesseractOCRConverted = item.ReadString(Models.Internal.Rom.TesseractOCRConvertedKey),
TesseractOCRDetectedLang = item.ReadString(Models.Internal.Rom.TesseractOCRDetectedLangKey),
TesseractOCRDetectedLangConf = item.ReadString(Models.Internal.Rom.TesseractOCRDetectedLangConfKey),
TesseractOCRDetectedScript = item.ReadString(Models.Internal.Rom.TesseractOCRDetectedScriptKey),
TesseractOCRDetectedScriptConf = item.ReadString(Models.Internal.Rom.TesseractOCRDetectedScriptConfKey),
TesseractOCRModuleVersion = item.ReadString(Models.Internal.Rom.TesseractOCRModuleVersionKey),
TesseractOCRParameters = item.ReadString(Models.Internal.Rom.TesseractOCRParametersKey),
PDFModuleVersion = item.ReadString(Models.Internal.Rom.PDFModuleVersionKey),
WordConfidenceInterval0To10 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval0To10Key),
WordConfidenceInterval11To20 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval11To20Key),
WordConfidenceInterval21To30 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval21To30Key),
WordConfidenceInterval31To40 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval31To40Key),
WordConfidenceInterval41To50 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval41To50Key),
WordConfidenceInterval51To60 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval51To60Key),
WordConfidenceInterval61To70 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval61To70Key),
WordConfidenceInterval71To80 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval71To80Key),
WordConfidenceInterval81To90 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval81To90Key),
WordConfidenceInterval91To100 = item.ReadString(Models.Internal.Rom.WordConfidenceInterval91To100Key),
ClothCoverDetectionModuleVersion = item.ReadString(Models.Metadata.Rom.ClothCoverDetectionModuleVersionKey),
hOCRCharToWordhOCRVersion = item.ReadString(Models.Metadata.Rom.hOCRCharToWordhOCRVersionKey),
hOCRCharToWordModuleVersion = item.ReadString(Models.Metadata.Rom.hOCRCharToWordModuleVersionKey),
hOCRFtsTexthOCRVersion = item.ReadString(Models.Metadata.Rom.hOCRFtsTexthOCRVersionKey),
hOCRFtsTextModuleVersion = item.ReadString(Models.Metadata.Rom.hOCRFtsTextModuleVersionKey),
hOCRPageIndexhOCRVersion = item.ReadString(Models.Metadata.Rom.hOCRPageIndexhOCRVersionKey),
hOCRPageIndexModuleVersion = item.ReadString(Models.Metadata.Rom.hOCRPageIndexModuleVersionKey),
TesseractOCR = item.ReadString(Models.Metadata.Rom.TesseractOCRKey),
TesseractOCRConverted = item.ReadString(Models.Metadata.Rom.TesseractOCRConvertedKey),
TesseractOCRDetectedLang = item.ReadString(Models.Metadata.Rom.TesseractOCRDetectedLangKey),
TesseractOCRDetectedLangConf = item.ReadString(Models.Metadata.Rom.TesseractOCRDetectedLangConfKey),
TesseractOCRDetectedScript = item.ReadString(Models.Metadata.Rom.TesseractOCRDetectedScriptKey),
TesseractOCRDetectedScriptConf = item.ReadString(Models.Metadata.Rom.TesseractOCRDetectedScriptConfKey),
TesseractOCRModuleVersion = item.ReadString(Models.Metadata.Rom.TesseractOCRModuleVersionKey),
TesseractOCRParameters = item.ReadString(Models.Metadata.Rom.TesseractOCRParametersKey),
PDFModuleVersion = item.ReadString(Models.Metadata.Rom.PDFModuleVersionKey),
WordConfidenceInterval0To10 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval0To10Key),
WordConfidenceInterval11To20 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval11To20Key),
WordConfidenceInterval21To30 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval21To30Key),
WordConfidenceInterval31To40 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval31To40Key),
WordConfidenceInterval41To50 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval41To50Key),
WordConfidenceInterval51To60 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval51To60Key),
WordConfidenceInterval61To70 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval61To70Key),
WordConfidenceInterval71To80 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval71To80Key),
WordConfidenceInterval81To90 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval81To90Key),
WordConfidenceInterval91To100 = item.ReadString(Models.Metadata.Rom.WordConfidenceInterval91To100Key),
Album = item.ReadString(Models.Internal.Rom.AlbumKey),
Artist = item.ReadString(Models.Internal.Rom.ArtistKey),
Bitrate = item.ReadString(Models.Internal.Rom.BitrateKey),
Creator = item.ReadString(Models.Internal.Rom.CreatorKey),
Height = item.ReadString(Models.Internal.Rom.HeightKey),
Length = item.ReadString(Models.Internal.Rom.LengthKey),
PreviewImage = item.ReadString(Models.Internal.Rom.PreviewImageKey),
Rotation = item.ReadString(Models.Internal.Rom.RotationKey),
Title = item.ReadString(Models.Internal.Rom.TitleKey),
Track = item.ReadString(Models.Internal.Rom.TrackKey),
Width = item.ReadString(Models.Internal.Rom.WidthKey),
Album = item.ReadString(Models.Metadata.Rom.AlbumKey),
Artist = item.ReadString(Models.Metadata.Rom.ArtistKey),
Bitrate = item.ReadString(Models.Metadata.Rom.BitrateKey),
Creator = item.ReadString(Models.Metadata.Rom.CreatorKey),
Height = item.ReadString(Models.Metadata.Rom.HeightKey),
Length = item.ReadString(Models.Metadata.Rom.LengthKey),
PreviewImage = item.ReadString(Models.Metadata.Rom.PreviewImageKey),
Rotation = item.ReadString(Models.Metadata.Rom.RotationKey),
Title = item.ReadString(Models.Metadata.Rom.TitleKey),
Track = item.ReadString(Models.Metadata.Rom.TrackKey),
Width = item.ReadString(Models.Metadata.Rom.WidthKey),
};
return file;
}

View File

@@ -11,21 +11,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.Files"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.ArchiveDotOrg.Files"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(Files? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(Files? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
if (item?.File != null && item.File.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.File
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.File
.Where(f => f != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -35,99 +35,99 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.Files"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.ArchiveDotOrg.Files"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(Files item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(Files item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.NameKey] = "archive.org",
[Models.Metadata.Header.NameKey] = "archive.org",
};
return header;
}
/// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(File item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(File item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.RomKey] = ConvertToInternalModel(item),
[Models.Metadata.Machine.RomKey] = ConvertToInternalModel(item),
};
return machine;
}
/// <summary>
/// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.ArchiveDotOrg.File"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(File item)
private static Models.Metadata.Rom ConvertToInternalModel(File item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.Name,
[Models.Internal.Rom.SourceKey] = item.Source,
[Models.Internal.Rom.BitTorrentMagnetHashKey] = item.BitTorrentMagnetHash,
[Models.Internal.Rom.LastModifiedTimeKey] = item.LastModifiedTime,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Internal.Rom.MD5Key] = item.MD5,
[Models.Internal.Rom.CRCKey] = item.CRC32,
[Models.Internal.Rom.SHA1Key] = item.SHA1,
[Models.Internal.Rom.FileCountKey] = item.FileCount,
[Models.Internal.Rom.FormatKey] = item.Format,
[Models.Internal.Rom.OriginalKey] = item.Original,
[Models.Internal.Rom.SummationKey] = item.Summation,
[Models.Internal.Rom.MatrixNumberKey] = item.MatrixNumber,
[Models.Internal.Rom.CollectionCatalogNumberKey] = item.CollectionCatalogNumber,
[Models.Internal.Rom.PublisherKey] = item.Publisher,
[Models.Internal.Rom.CommentKey] = item.Comment,
[Models.Metadata.Rom.NameKey] = item.Name,
[Models.Metadata.Rom.SourceKey] = item.Source,
[Models.Metadata.Rom.BitTorrentMagnetHashKey] = item.BitTorrentMagnetHash,
[Models.Metadata.Rom.LastModifiedTimeKey] = item.LastModifiedTime,
[Models.Metadata.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.MD5Key] = item.MD5,
[Models.Metadata.Rom.CRCKey] = item.CRC32,
[Models.Metadata.Rom.SHA1Key] = item.SHA1,
[Models.Metadata.Rom.FileCountKey] = item.FileCount,
[Models.Metadata.Rom.FormatKey] = item.Format,
[Models.Metadata.Rom.OriginalKey] = item.Original,
[Models.Metadata.Rom.SummationKey] = item.Summation,
[Models.Metadata.Rom.MatrixNumberKey] = item.MatrixNumber,
[Models.Metadata.Rom.CollectionCatalogNumberKey] = item.CollectionCatalogNumber,
[Models.Metadata.Rom.PublisherKey] = item.Publisher,
[Models.Metadata.Rom.CommentKey] = item.Comment,
[Models.Internal.Rom.ASRDetectedLangKey] = item.ASRDetectedLang,
[Models.Internal.Rom.ASRDetectedLangConfKey] = item.ASRDetectedLangConf,
[Models.Internal.Rom.ASRTranscribedLangKey] = item.ASRTranscribedLang,
[Models.Internal.Rom.WhisperASRModuleVersionKey] = item.WhisperASRModuleVersion,
[Models.Internal.Rom.WhisperModelHashKey] = item.WhisperModelHash,
[Models.Internal.Rom.WhisperModelNameKey] = item.WhisperModelName,
[Models.Internal.Rom.WhisperVersionKey] = item.WhisperVersion,
[Models.Metadata.Rom.ASRDetectedLangKey] = item.ASRDetectedLang,
[Models.Metadata.Rom.ASRDetectedLangConfKey] = item.ASRDetectedLangConf,
[Models.Metadata.Rom.ASRTranscribedLangKey] = item.ASRTranscribedLang,
[Models.Metadata.Rom.WhisperASRModuleVersionKey] = item.WhisperASRModuleVersion,
[Models.Metadata.Rom.WhisperModelHashKey] = item.WhisperModelHash,
[Models.Metadata.Rom.WhisperModelNameKey] = item.WhisperModelName,
[Models.Metadata.Rom.WhisperVersionKey] = item.WhisperVersion,
[Models.Internal.Rom.ClothCoverDetectionModuleVersionKey] = item.ClothCoverDetectionModuleVersion,
[Models.Internal.Rom.hOCRCharToWordhOCRVersionKey] = item.hOCRCharToWordhOCRVersion,
[Models.Internal.Rom.hOCRCharToWordModuleVersionKey] = item.hOCRCharToWordModuleVersion,
[Models.Internal.Rom.hOCRFtsTexthOCRVersionKey] = item.hOCRFtsTexthOCRVersion,
[Models.Internal.Rom.hOCRFtsTextModuleVersionKey] = item.hOCRFtsTextModuleVersion,
[Models.Internal.Rom.hOCRPageIndexhOCRVersionKey] = item.hOCRPageIndexhOCRVersion,
[Models.Internal.Rom.hOCRPageIndexModuleVersionKey] = item.hOCRPageIndexModuleVersion,
[Models.Internal.Rom.TesseractOCRKey] = item.TesseractOCR,
[Models.Internal.Rom.TesseractOCRConvertedKey] = item.TesseractOCRConverted,
[Models.Internal.Rom.TesseractOCRDetectedLangKey] = item.TesseractOCRDetectedLang,
[Models.Internal.Rom.TesseractOCRDetectedLangConfKey] = item.TesseractOCRDetectedLangConf,
[Models.Internal.Rom.TesseractOCRDetectedScriptKey] = item.TesseractOCRDetectedScript,
[Models.Internal.Rom.TesseractOCRDetectedScriptConfKey] = item.TesseractOCRDetectedScriptConf,
[Models.Internal.Rom.TesseractOCRModuleVersionKey] = item.TesseractOCRModuleVersion,
[Models.Internal.Rom.TesseractOCRParametersKey] = item.TesseractOCRParameters,
[Models.Internal.Rom.PDFModuleVersionKey] = item.PDFModuleVersion,
[Models.Internal.Rom.WordConfidenceInterval0To10Key] = item.WordConfidenceInterval0To10,
[Models.Internal.Rom.WordConfidenceInterval11To20Key] = item.WordConfidenceInterval11To20,
[Models.Internal.Rom.WordConfidenceInterval21To30Key] = item.WordConfidenceInterval21To30,
[Models.Internal.Rom.WordConfidenceInterval31To40Key] = item.WordConfidenceInterval31To40,
[Models.Internal.Rom.WordConfidenceInterval41To50Key] = item.WordConfidenceInterval41To50,
[Models.Internal.Rom.WordConfidenceInterval51To60Key] = item.WordConfidenceInterval51To60,
[Models.Internal.Rom.WordConfidenceInterval61To70Key] = item.WordConfidenceInterval61To70,
[Models.Internal.Rom.WordConfidenceInterval71To80Key] = item.WordConfidenceInterval71To80,
[Models.Internal.Rom.WordConfidenceInterval81To90Key] = item.WordConfidenceInterval81To90,
[Models.Internal.Rom.WordConfidenceInterval91To100Key] = item.WordConfidenceInterval91To100,
[Models.Metadata.Rom.ClothCoverDetectionModuleVersionKey] = item.ClothCoverDetectionModuleVersion,
[Models.Metadata.Rom.hOCRCharToWordhOCRVersionKey] = item.hOCRCharToWordhOCRVersion,
[Models.Metadata.Rom.hOCRCharToWordModuleVersionKey] = item.hOCRCharToWordModuleVersion,
[Models.Metadata.Rom.hOCRFtsTexthOCRVersionKey] = item.hOCRFtsTexthOCRVersion,
[Models.Metadata.Rom.hOCRFtsTextModuleVersionKey] = item.hOCRFtsTextModuleVersion,
[Models.Metadata.Rom.hOCRPageIndexhOCRVersionKey] = item.hOCRPageIndexhOCRVersion,
[Models.Metadata.Rom.hOCRPageIndexModuleVersionKey] = item.hOCRPageIndexModuleVersion,
[Models.Metadata.Rom.TesseractOCRKey] = item.TesseractOCR,
[Models.Metadata.Rom.TesseractOCRConvertedKey] = item.TesseractOCRConverted,
[Models.Metadata.Rom.TesseractOCRDetectedLangKey] = item.TesseractOCRDetectedLang,
[Models.Metadata.Rom.TesseractOCRDetectedLangConfKey] = item.TesseractOCRDetectedLangConf,
[Models.Metadata.Rom.TesseractOCRDetectedScriptKey] = item.TesseractOCRDetectedScript,
[Models.Metadata.Rom.TesseractOCRDetectedScriptConfKey] = item.TesseractOCRDetectedScriptConf,
[Models.Metadata.Rom.TesseractOCRModuleVersionKey] = item.TesseractOCRModuleVersion,
[Models.Metadata.Rom.TesseractOCRParametersKey] = item.TesseractOCRParameters,
[Models.Metadata.Rom.PDFModuleVersionKey] = item.PDFModuleVersion,
[Models.Metadata.Rom.WordConfidenceInterval0To10Key] = item.WordConfidenceInterval0To10,
[Models.Metadata.Rom.WordConfidenceInterval11To20Key] = item.WordConfidenceInterval11To20,
[Models.Metadata.Rom.WordConfidenceInterval21To30Key] = item.WordConfidenceInterval21To30,
[Models.Metadata.Rom.WordConfidenceInterval31To40Key] = item.WordConfidenceInterval31To40,
[Models.Metadata.Rom.WordConfidenceInterval41To50Key] = item.WordConfidenceInterval41To50,
[Models.Metadata.Rom.WordConfidenceInterval51To60Key] = item.WordConfidenceInterval51To60,
[Models.Metadata.Rom.WordConfidenceInterval61To70Key] = item.WordConfidenceInterval61To70,
[Models.Metadata.Rom.WordConfidenceInterval71To80Key] = item.WordConfidenceInterval71To80,
[Models.Metadata.Rom.WordConfidenceInterval81To90Key] = item.WordConfidenceInterval81To90,
[Models.Metadata.Rom.WordConfidenceInterval91To100Key] = item.WordConfidenceInterval91To100,
[Models.Internal.Rom.AlbumKey] = item.Album,
[Models.Internal.Rom.ArtistKey] = item.Artist,
[Models.Internal.Rom.BitrateKey] = item.Bitrate,
[Models.Internal.Rom.CreatorKey] = item.Creator,
[Models.Internal.Rom.HeightKey] = item.Height,
[Models.Internal.Rom.LengthKey] = item.Length,
[Models.Internal.Rom.PreviewImageKey] = item.PreviewImage,
[Models.Internal.Rom.RotationKey] = item.Rotation,
[Models.Internal.Rom.TitleKey] = item.Title,
[Models.Internal.Rom.TrackKey] = item.Track,
[Models.Internal.Rom.WidthKey] = item.Width,
[Models.Metadata.Rom.AlbumKey] = item.Album,
[Models.Metadata.Rom.ArtistKey] = item.Artist,
[Models.Metadata.Rom.BitrateKey] = item.Bitrate,
[Models.Metadata.Rom.CreatorKey] = item.Creator,
[Models.Metadata.Rom.HeightKey] = item.Height,
[Models.Metadata.Rom.LengthKey] = item.Length,
[Models.Metadata.Rom.PreviewImageKey] = item.PreviewImage,
[Models.Metadata.Rom.RotationKey] = item.Rotation,
[Models.Metadata.Rom.TitleKey] = item.Title,
[Models.Metadata.Rom.TrackKey] = item.Track,
[Models.Metadata.Rom.WidthKey] = item.Width,
};
return rom;
}

View File

@@ -125,17 +125,17 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.AttractMode.MetadataFile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.AttractMode.MetadataFile"/>
/// </summary>
public static MetadataFile? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static MetadataFile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var metadataFile = header != null ? ConvertHeaderFromInternalModel(header) : new MetadataFile();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Row = machines
@@ -148,23 +148,23 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.AttractMode.MetadataFile"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.AttractMode.MetadataFile"/>
/// </summary>
private static MetadataFile ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static MetadataFile ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var metadataFile = new MetadataFile
{
Header = item.ReadStringArray(Models.Internal.Header.HeaderKey),
Header = item.ReadStringArray(Models.Metadata.Header.HeaderKey),
};
return metadataFile;
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to an array of <cref="Models.AttractMode.Row"/>
/// Convert from <cref="Models.Metadata.Machine"/> to an array of <cref="Models.AttractMode.Row"/>
/// </summary>
private static Row[] ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Row[] ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms == null || !roms.Any())
return Array.Empty<Row>();
@@ -175,34 +175,34 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.AttractMode.Row"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.AttractMode.Row"/>
/// </summary>
private static Row ConvertFromInternalModel(Models.Internal.Rom item, Models.Internal.Machine parent)
private static Row ConvertFromInternalModel(Models.Metadata.Rom item, Models.Metadata.Machine parent)
{
var row = new Row
{
Name = parent.ReadString(Models.Internal.Machine.NameKey),
Title = item.ReadString(Models.Internal.Rom.NameKey),
Emulator = parent.ReadString(Models.Internal.Machine.EmulatorKey),
CloneOf = parent.ReadString(Models.Internal.Machine.CloneOfKey),
Year = parent.ReadString(Models.Internal.Machine.YearKey),
Manufacturer = parent.ReadString(Models.Internal.Machine.ManufacturerKey),
Category = parent.ReadString(Models.Internal.Machine.CategoryKey),
Players = parent.ReadString(Models.Internal.Machine.PlayersKey),
Rotation = parent.ReadString(Models.Internal.Machine.RotationKey),
Control = parent.ReadString(Models.Internal.Machine.ControlKey),
Status = parent.ReadString(Models.Internal.Machine.StatusKey),
DisplayCount = parent.ReadString(Models.Internal.Machine.DisplayCountKey),
DisplayType = parent.ReadString(Models.Internal.Machine.DisplayTypeKey),
AltRomname = item.ReadString(Models.Internal.Rom.AltRomnameKey),
AltTitle = item.ReadString(Models.Internal.Rom.AltTitleKey),
Extra = parent.ReadString(Models.Internal.Machine.ExtraKey),
Buttons = parent.ReadString(Models.Internal.Machine.ButtonsKey),
Favorite = parent.ReadString(Models.Internal.Machine.FavoriteKey),
Tags = parent.ReadString(Models.Internal.Machine.TagsKey),
PlayedCount = parent.ReadString(Models.Internal.Machine.PlayedCountKey),
PlayedTime = parent.ReadString(Models.Internal.Machine.PlayedTimeKey),
FileIsAvailable = item.ReadString(Models.Internal.Rom.FileIsAvailableKey),
Name = parent.ReadString(Models.Metadata.Machine.NameKey),
Title = item.ReadString(Models.Metadata.Rom.NameKey),
Emulator = parent.ReadString(Models.Metadata.Machine.EmulatorKey),
CloneOf = parent.ReadString(Models.Metadata.Machine.CloneOfKey),
Year = parent.ReadString(Models.Metadata.Machine.YearKey),
Manufacturer = parent.ReadString(Models.Metadata.Machine.ManufacturerKey),
Category = parent.ReadString(Models.Metadata.Machine.CategoryKey),
Players = parent.ReadString(Models.Metadata.Machine.PlayersKey),
Rotation = parent.ReadString(Models.Metadata.Machine.RotationKey),
Control = parent.ReadString(Models.Metadata.Machine.ControlKey),
Status = parent.ReadString(Models.Metadata.Machine.StatusKey),
DisplayCount = parent.ReadString(Models.Metadata.Machine.DisplayCountKey),
DisplayType = parent.ReadString(Models.Metadata.Machine.DisplayTypeKey),
AltRomname = item.ReadString(Models.Metadata.Rom.AltRomnameKey),
AltTitle = item.ReadString(Models.Metadata.Rom.AltTitleKey),
Extra = parent.ReadString(Models.Metadata.Machine.ExtraKey),
Buttons = parent.ReadString(Models.Metadata.Machine.ButtonsKey),
Favorite = parent.ReadString(Models.Metadata.Machine.FavoriteKey),
Tags = parent.ReadString(Models.Metadata.Machine.TagsKey),
PlayedCount = parent.ReadString(Models.Metadata.Machine.PlayedCountKey),
PlayedTime = parent.ReadString(Models.Metadata.Machine.PlayedTimeKey),
FileIsAvailable = item.ReadString(Models.Metadata.Rom.FileIsAvailableKey),
};
return row;
}

View File

@@ -103,21 +103,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.AttractMode.MetadataFile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.AttractMode.MetadataFile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(MetadataFile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
if (item?.Row != null && item.Row.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Row
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Row
.Where(r => r != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -127,59 +127,59 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.AttractMode.MetadataFile"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.AttractMode.MetadataFile"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(MetadataFile item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(MetadataFile item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.HeaderKey] = item.Header,
[Models.Metadata.Header.HeaderKey] = item.Header,
};
return header;
}
/// <summary>
/// Convert from <cref="Models.AttractMode.Row"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.AttractMode.Row"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Row item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Row item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.NameKey] = item.Name,
[Models.Internal.Machine.EmulatorKey] = item.Emulator,
[Models.Internal.Machine.CloneOfKey] = item.CloneOf,
[Models.Internal.Machine.YearKey] = item.Year,
[Models.Internal.Machine.ManufacturerKey] = item.Manufacturer,
[Models.Internal.Machine.CategoryKey] = item.Category,
[Models.Internal.Machine.PlayersKey] = item.Players,
[Models.Internal.Machine.RotationKey] = item.Rotation,
[Models.Internal.Machine.ControlKey] = item.Control,
[Models.Internal.Machine.StatusKey] = item.Status,
[Models.Internal.Machine.DisplayCountKey] = item.DisplayCount,
[Models.Internal.Machine.DisplayTypeKey] = item.DisplayType,
[Models.Internal.Machine.ExtraKey] = item.Extra,
[Models.Internal.Machine.ButtonsKey] = item.Buttons,
[Models.Internal.Machine.FavoriteKey] = item.Favorite,
[Models.Internal.Machine.TagsKey] = item.Tags,
[Models.Internal.Machine.PlayedCountKey] = item.PlayedCount,
[Models.Internal.Machine.PlayedTimeKey] = item.PlayedTime,
[Models.Internal.Machine.PlayedTimeKey] = item.PlayedTime,
[Models.Internal.Machine.RomKey] = ConvertToInternalModel(item),
[Models.Metadata.Machine.NameKey] = item.Name,
[Models.Metadata.Machine.EmulatorKey] = item.Emulator,
[Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Models.Metadata.Machine.YearKey] = item.Year,
[Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer,
[Models.Metadata.Machine.CategoryKey] = item.Category,
[Models.Metadata.Machine.PlayersKey] = item.Players,
[Models.Metadata.Machine.RotationKey] = item.Rotation,
[Models.Metadata.Machine.ControlKey] = item.Control,
[Models.Metadata.Machine.StatusKey] = item.Status,
[Models.Metadata.Machine.DisplayCountKey] = item.DisplayCount,
[Models.Metadata.Machine.DisplayTypeKey] = item.DisplayType,
[Models.Metadata.Machine.ExtraKey] = item.Extra,
[Models.Metadata.Machine.ButtonsKey] = item.Buttons,
[Models.Metadata.Machine.FavoriteKey] = item.Favorite,
[Models.Metadata.Machine.TagsKey] = item.Tags,
[Models.Metadata.Machine.PlayedCountKey] = item.PlayedCount,
[Models.Metadata.Machine.PlayedTimeKey] = item.PlayedTime,
[Models.Metadata.Machine.PlayedTimeKey] = item.PlayedTime,
[Models.Metadata.Machine.RomKey] = ConvertToInternalModel(item),
};
return machine;
}
/// <summary>
/// Convert from <cref="Models.AttractMode.Row"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.AttractMode.Row"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(Row item)
private static Models.Metadata.Rom ConvertToInternalModel(Row item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.Title,
[Models.Internal.Rom.AltRomnameKey] = item.AltRomname,
[Models.Internal.Rom.AltTitleKey] = item.AltTitle,
[Models.Internal.Rom.FileIsAvailableKey] = item.FileIsAvailable,
[Models.Metadata.Rom.NameKey] = item.Title,
[Models.Metadata.Rom.AltRomnameKey] = item.AltRomname,
[Models.Metadata.Rom.AltTitleKey] = item.AltTitle,
[Models.Metadata.Rom.FileIsAvailableKey] = item.FileIsAvailable,
};
return rom;
}

View File

@@ -911,20 +911,20 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.ClrMamePro.MetadataFile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.ClrMamePro.MetadataFile"/>
/// </summary>
public static MetadataFile? ConvertFromInternalModel(Models.Internal.MetadataFile? item, bool game = false)
public static MetadataFile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item, bool game = false)
{
if (item == null)
return null;
var metadataFile = new MetadataFile();
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
if (header != null)
metadataFile.ClrMamePro = ConvertHeaderFromInternalModel(header);
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Game = machines
@@ -937,48 +937,48 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.ClrMamePro.ClrMamePro"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.ClrMamePro.ClrMamePro"/>
/// </summary>
private static Models.ClrMamePro.ClrMamePro ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static Models.ClrMamePro.ClrMamePro ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var clrMamePro = new Models.ClrMamePro.ClrMamePro
{
Name = item.ReadString(Models.Internal.Header.NameKey),
Description = item.ReadString(Models.Internal.Header.DescriptionKey),
RootDir = item.ReadString(Models.Internal.Header.RootDirKey),
Category = item.ReadString(Models.Internal.Header.CategoryKey),
Version = item.ReadString(Models.Internal.Header.VersionKey),
Date = item.ReadString(Models.Internal.Header.DateKey),
Author = item.ReadString(Models.Internal.Header.AuthorKey),
Homepage = item.ReadString(Models.Internal.Header.HomepageKey),
Url = item.ReadString(Models.Internal.Header.UrlKey),
Comment = item.ReadString(Models.Internal.Header.CommentKey),
Header = item.ReadString(Models.Internal.Header.HeaderKey),
Type = item.ReadString(Models.Internal.Header.TypeKey),
ForceMerging = item.ReadString(Models.Internal.Header.ForceMergingKey),
ForceZipping = item.ReadString(Models.Internal.Header.ForceZippingKey),
ForcePacking = item.ReadString(Models.Internal.Header.ForcePackingKey),
Name = item.ReadString(Models.Metadata.Header.NameKey),
Description = item.ReadString(Models.Metadata.Header.DescriptionKey),
RootDir = item.ReadString(Models.Metadata.Header.RootDirKey),
Category = item.ReadString(Models.Metadata.Header.CategoryKey),
Version = item.ReadString(Models.Metadata.Header.VersionKey),
Date = item.ReadString(Models.Metadata.Header.DateKey),
Author = item.ReadString(Models.Metadata.Header.AuthorKey),
Homepage = item.ReadString(Models.Metadata.Header.HomepageKey),
Url = item.ReadString(Models.Metadata.Header.UrlKey),
Comment = item.ReadString(Models.Metadata.Header.CommentKey),
Header = item.ReadString(Models.Metadata.Header.HeaderKey),
Type = item.ReadString(Models.Metadata.Header.TypeKey),
ForceMerging = item.ReadString(Models.Metadata.Header.ForceMergingKey),
ForceZipping = item.ReadString(Models.Metadata.Header.ForceZippingKey),
ForcePacking = item.ReadString(Models.Metadata.Header.ForcePackingKey),
};
return clrMamePro;
}
/// <summary>
/// Convert from <cref="Models.Internal.Archive"/> to <cref="Models.ClrMamePro.Machine"/>
/// Convert from <cref="Models.Metadata.Archive"/> to <cref="Models.ClrMamePro.Machine"/>
/// </summary>
private static GameBase ConvertMachineFromInternalModel(Models.Internal.Machine item, bool game = false)
private static GameBase ConvertMachineFromInternalModel(Models.Metadata.Machine item, bool game = false)
{
GameBase gameBase = game ? new Models.ClrMamePro.Game() : new Models.ClrMamePro.Machine();
gameBase.Name = item.ReadString(Models.Internal.Machine.NameKey);
gameBase.Description = item.ReadString(Models.Internal.Machine.DescriptionKey);
gameBase.Year = item.ReadString(Models.Internal.Machine.YearKey);
gameBase.Manufacturer = item.ReadString(Models.Internal.Machine.ManufacturerKey);
gameBase.Category = item.ReadString(Models.Internal.Machine.CategoryKey);
gameBase.CloneOf = item.ReadString(Models.Internal.Machine.CloneOfKey);
gameBase.RomOf = item.ReadString(Models.Internal.Machine.RomOfKey);
gameBase.SampleOf = item.ReadString(Models.Internal.Machine.SampleOfKey);
gameBase.Name = item.ReadString(Models.Metadata.Machine.NameKey);
gameBase.Description = item.ReadString(Models.Metadata.Machine.DescriptionKey);
gameBase.Year = item.ReadString(Models.Metadata.Machine.YearKey);
gameBase.Manufacturer = item.ReadString(Models.Metadata.Machine.ManufacturerKey);
gameBase.Category = item.ReadString(Models.Metadata.Machine.CategoryKey);
gameBase.CloneOf = item.ReadString(Models.Metadata.Machine.CloneOfKey);
gameBase.RomOf = item.ReadString(Models.Metadata.Machine.RomOfKey);
gameBase.SampleOf = item.ReadString(Models.Metadata.Machine.SampleOfKey);
var releases = item.Read<Models.Internal.Release[]>(Models.Internal.Machine.ReleaseKey);
var releases = item.Read<Models.Metadata.Release[]>(Models.Metadata.Machine.ReleaseKey);
if (releases != null && releases.Any())
{
gameBase.Release = releases
@@ -987,7 +987,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var biosSets = item.Read<Models.Internal.BiosSet[]>(Models.Internal.Machine.BiosSetKey);
var biosSets = item.Read<Models.Metadata.BiosSet[]>(Models.Metadata.Machine.BiosSetKey);
if (biosSets != null && biosSets.Any())
{
gameBase.BiosSet = biosSets
@@ -996,7 +996,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms != null && roms.Any())
{
gameBase.Rom = roms
@@ -1005,7 +1005,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var disks = item.Read<Models.Internal.Disk[]>(Models.Internal.Machine.DiskKey);
var disks = item.Read<Models.Metadata.Disk[]>(Models.Metadata.Machine.DiskKey);
if (disks != null && disks.Any())
{
gameBase.Disk = disks
@@ -1014,7 +1014,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var medias = item.Read<Models.Internal.Media[]>(Models.Internal.Machine.MediaKey);
var medias = item.Read<Models.Metadata.Media[]>(Models.Metadata.Machine.MediaKey);
if (medias != null && medias.Any())
{
gameBase.Media = medias
@@ -1023,7 +1023,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var samples = item.Read<Models.Internal.Sample[]>(Models.Internal.Machine.SampleKey);
var samples = item.Read<Models.Metadata.Sample[]>(Models.Metadata.Machine.SampleKey);
if (samples != null && samples.Any())
{
gameBase.Sample = samples
@@ -1032,7 +1032,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var archives = item.Read<Models.Internal.Archive[]>(Models.Internal.Machine.ArchiveKey);
var archives = item.Read<Models.Metadata.Archive[]>(Models.Metadata.Machine.ArchiveKey);
if (archives != null && archives.Any())
{
gameBase.Archive = archives
@@ -1041,7 +1041,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var chips = item.Read<Models.Internal.Chip[]>(Models.Internal.Machine.ChipKey);
var chips = item.Read<Models.Metadata.Chip[]>(Models.Metadata.Machine.ChipKey);
if (chips != null && chips.Any())
{
gameBase.Chip = chips
@@ -1050,7 +1050,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var videos = item.Read<Models.Internal.Video[]>(Models.Internal.Machine.VideoKey);
var videos = item.Read<Models.Metadata.Video[]>(Models.Metadata.Machine.VideoKey);
if (videos != null && videos.Any())
{
gameBase.Video = videos
@@ -1059,15 +1059,15 @@ namespace SabreTools.Serialization
.ToArray();
}
var sound = item.Read<Models.Internal.Sound>(Models.Internal.Machine.SoundKey);
var sound = item.Read<Models.Metadata.Sound>(Models.Metadata.Machine.SoundKey);
if (sound != null)
gameBase.Sound = ConvertFromInternalModel(sound);
var input = item.Read<Models.Internal.Input>(Models.Internal.Machine.InputKey);
var input = item.Read<Models.Metadata.Input>(Models.Metadata.Machine.InputKey);
if (input != null)
gameBase.Input = ConvertFromInternalModel(input);
var dipSwitches = item.Read<Models.Internal.DipSwitch[]>(Models.Internal.Machine.DipSwitchKey);
var dipSwitches = item.Read<Models.Metadata.DipSwitch[]>(Models.Metadata.Machine.DipSwitchKey);
if (dipSwitches != null && dipSwitches.Any())
{
gameBase.DipSwitch = dipSwitches
@@ -1076,7 +1076,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var driver = item.Read<Models.Internal.Driver>(Models.Internal.Machine.DriverKey);
var driver = item.Read<Models.Metadata.Driver>(Models.Metadata.Machine.DriverKey);
if (driver != null)
gameBase.Driver = ConvertFromInternalModel(driver);
@@ -1084,212 +1084,212 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Archive"/> to <cref="Models.ClrMamePro.Archive"/>
/// Convert from <cref="Models.Metadata.Archive"/> to <cref="Models.ClrMamePro.Archive"/>
/// </summary>
private static Archive ConvertFromInternalModel(Models.Internal.Archive item)
private static Archive ConvertFromInternalModel(Models.Metadata.Archive item)
{
var archive = new Archive
{
Name = item.ReadString(Models.Internal.Archive.NameKey),
Name = item.ReadString(Models.Metadata.Archive.NameKey),
};
return archive;
}
/// <summary>
/// Convert from <cref="Models.Internal.BiosSet"/> to <cref="Models.ClrMamePro.BiosSet"/>
/// Convert from <cref="Models.Metadata.BiosSet"/> to <cref="Models.ClrMamePro.BiosSet"/>
/// </summary>
private static BiosSet ConvertFromInternalModel(Models.Internal.BiosSet item)
private static BiosSet ConvertFromInternalModel(Models.Metadata.BiosSet item)
{
var biosset = new BiosSet
{
Name = item.ReadString(Models.Internal.BiosSet.NameKey),
Description = item.ReadString(Models.Internal.BiosSet.DescriptionKey),
Default = item.ReadString(Models.Internal.BiosSet.DefaultKey),
Name = item.ReadString(Models.Metadata.BiosSet.NameKey),
Description = item.ReadString(Models.Metadata.BiosSet.DescriptionKey),
Default = item.ReadString(Models.Metadata.BiosSet.DefaultKey),
};
return biosset;
}
/// <summary>
/// Convert from <cref="Models.Internal.Chip"/> to <cref="Models.ClrMamePro.Chip"/>
/// Convert from <cref="Models.Metadata.Chip"/> to <cref="Models.ClrMamePro.Chip"/>
/// </summary>
private static Chip ConvertFromInternalModel(Models.Internal.Chip item)
private static Chip ConvertFromInternalModel(Models.Metadata.Chip item)
{
var chip = new Chip
{
Type = item.ReadString(Models.Internal.Chip.ChipTypeKey),
Name = item.ReadString(Models.Internal.Chip.NameKey),
Flags = item.ReadString(Models.Internal.Chip.FlagsKey),
Clock = item.ReadString(Models.Internal.Chip.ClockKey),
Type = item.ReadString(Models.Metadata.Chip.ChipTypeKey),
Name = item.ReadString(Models.Metadata.Chip.NameKey),
Flags = item.ReadString(Models.Metadata.Chip.FlagsKey),
Clock = item.ReadString(Models.Metadata.Chip.ClockKey),
};
return chip;
}
/// <summary>
/// Convert from <cref="Models.Internal.DipSwitch"/> to <cref="Models.ClrMamePro.DipSwitch"/>
/// Convert from <cref="Models.Metadata.DipSwitch"/> to <cref="Models.ClrMamePro.DipSwitch"/>
/// </summary>
private static DipSwitch ConvertFromInternalModel(Models.Internal.DipSwitch item)
private static DipSwitch ConvertFromInternalModel(Models.Metadata.DipSwitch item)
{
var dipswitch = new DipSwitch
{
Name = item.ReadString(Models.Internal.DipSwitch.NameKey),
Entry = item[Models.Internal.DipSwitch.EntryKey] as string[],
Default = item.ReadString(Models.Internal.DipSwitch.DefaultKey),
Name = item.ReadString(Models.Metadata.DipSwitch.NameKey),
Entry = item[Models.Metadata.DipSwitch.EntryKey] as string[],
Default = item.ReadString(Models.Metadata.DipSwitch.DefaultKey),
};
return dipswitch;
}
/// <summary>
/// Convert from <cref="Models.Internal.Disk"/> to <cref="Models.ClrMamePro.Disk"/>
/// Convert from <cref="Models.Metadata.Disk"/> to <cref="Models.ClrMamePro.Disk"/>
/// </summary>
private static Disk ConvertFromInternalModel(Models.Internal.Disk item)
private static Disk ConvertFromInternalModel(Models.Metadata.Disk item)
{
var disk = new Disk
{
Name = item.ReadString(Models.Internal.Disk.NameKey),
MD5 = item.ReadString(Models.Internal.Disk.MD5Key),
SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key),
Merge = item.ReadString(Models.Internal.Disk.MergeKey),
Status = item.ReadString(Models.Internal.Disk.StatusKey),
Flags = item.ReadString(Models.Internal.Disk.FlagsKey),
Name = item.ReadString(Models.Metadata.Disk.NameKey),
MD5 = item.ReadString(Models.Metadata.Disk.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Disk.SHA1Key),
Merge = item.ReadString(Models.Metadata.Disk.MergeKey),
Status = item.ReadString(Models.Metadata.Disk.StatusKey),
Flags = item.ReadString(Models.Metadata.Disk.FlagsKey),
};
return disk;
}
/// <summary>
/// Convert from <cref="Models.Internal.Driver"/> to <cref="Models.ClrMamePro.Driver"/>
/// Convert from <cref="Models.Metadata.Driver"/> to <cref="Models.ClrMamePro.Driver"/>
/// </summary>
private static Driver ConvertFromInternalModel(Models.Internal.Driver item)
private static Driver ConvertFromInternalModel(Models.Metadata.Driver item)
{
var driver = new Driver
{
Status = item.ReadString(Models.Internal.Driver.StatusKey),
Color = item.ReadString(Models.Internal.Driver.ColorKey),
Sound = item.ReadString(Models.Internal.Driver.SoundKey),
PaletteSize = item.ReadString(Models.Internal.Driver.PaletteSizeKey),
Blit = item.ReadString(Models.Internal.Driver.BlitKey),
Status = item.ReadString(Models.Metadata.Driver.StatusKey),
Color = item.ReadString(Models.Metadata.Driver.ColorKey),
Sound = item.ReadString(Models.Metadata.Driver.SoundKey),
PaletteSize = item.ReadString(Models.Metadata.Driver.PaletteSizeKey),
Blit = item.ReadString(Models.Metadata.Driver.BlitKey),
};
return driver;
}
/// <summary>
/// Convert from <cref="Models.Internal.Input"/> to <cref="Models.ClrMamePro.Input"/>
/// Convert from <cref="Models.Metadata.Input"/> to <cref="Models.ClrMamePro.Input"/>
/// </summary>
private static Input ConvertFromInternalModel(Models.Internal.Input item)
private static Input ConvertFromInternalModel(Models.Metadata.Input item)
{
var input = new Input
{
Players = item.ReadString(Models.Internal.Input.PlayersKey),
Control = item.ReadString(Models.Internal.Input.ControlKey),
Buttons = item.ReadString(Models.Internal.Input.ButtonsKey),
Coins = item.ReadString(Models.Internal.Input.CoinsKey),
Tilt = item.ReadString(Models.Internal.Input.TiltKey),
Service = item.ReadString(Models.Internal.Input.ServiceKey),
Players = item.ReadString(Models.Metadata.Input.PlayersKey),
Control = item.ReadString(Models.Metadata.Input.ControlKey),
Buttons = item.ReadString(Models.Metadata.Input.ButtonsKey),
Coins = item.ReadString(Models.Metadata.Input.CoinsKey),
Tilt = item.ReadString(Models.Metadata.Input.TiltKey),
Service = item.ReadString(Models.Metadata.Input.ServiceKey),
};
return input;
}
/// <summary>
/// Convert from <cref="Models.Internal.Media"/> to <cref="Models.ClrMamePro.Media"/>
/// Convert from <cref="Models.Metadata.Media"/> to <cref="Models.ClrMamePro.Media"/>
/// </summary>
private static Media ConvertFromInternalModel(Models.Internal.Media item)
private static Media ConvertFromInternalModel(Models.Metadata.Media item)
{
var media = new Media
{
Name = item.ReadString(Models.Internal.Media.NameKey),
MD5 = item.ReadString(Models.Internal.Media.MD5Key),
SHA1 = item.ReadString(Models.Internal.Media.SHA1Key),
SHA256 = item.ReadString(Models.Internal.Media.SHA256Key),
SpamSum = item.ReadString(Models.Internal.Media.SpamSumKey),
Name = item.ReadString(Models.Metadata.Media.NameKey),
MD5 = item.ReadString(Models.Metadata.Media.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Media.SHA1Key),
SHA256 = item.ReadString(Models.Metadata.Media.SHA256Key),
SpamSum = item.ReadString(Models.Metadata.Media.SpamSumKey),
};
return media;
}
/// <summary>
/// Convert from <cref="Models.Internal.Release"/> to <cref="Models.ClrMamePro.Release"/>
/// Convert from <cref="Models.Metadata.Release"/> to <cref="Models.ClrMamePro.Release"/>
/// </summary>
private static Release ConvertFromInternalModel(Models.Internal.Release item)
private static Release ConvertFromInternalModel(Models.Metadata.Release item)
{
var release = new Release
{
Name = item.ReadString(Models.Internal.Release.NameKey),
Region = item.ReadString(Models.Internal.Release.RegionKey),
Language = item.ReadString(Models.Internal.Release.LanguageKey),
Date = item.ReadString(Models.Internal.Release.DateKey),
Default = item.ReadString(Models.Internal.Release.DefaultKey),
Name = item.ReadString(Models.Metadata.Release.NameKey),
Region = item.ReadString(Models.Metadata.Release.RegionKey),
Language = item.ReadString(Models.Metadata.Release.LanguageKey),
Date = item.ReadString(Models.Metadata.Release.DateKey),
Default = item.ReadString(Models.Metadata.Release.DefaultKey),
};
return release;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.ClrMamePro.Rom"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.ClrMamePro.Rom"/>
/// </summary>
private static Rom ConvertFromInternalModel(Models.Internal.Rom item)
private static Rom ConvertFromInternalModel(Models.Metadata.Rom item)
{
var rom = new Rom
{
Name = item.ReadString(Models.Internal.Rom.NameKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
CRC = item.ReadString(Models.Internal.Rom.CRCKey),
MD5 = item.ReadString(Models.Internal.Rom.MD5Key),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
SHA256 = item.ReadString(Models.Internal.Rom.SHA256Key),
SHA384 = item.ReadString(Models.Internal.Rom.SHA384Key),
SHA512 = item.ReadString(Models.Internal.Rom.SHA512Key),
SpamSum = item.ReadString(Models.Internal.Rom.SpamSumKey),
xxHash364 = item.ReadString(Models.Internal.Rom.xxHash364Key),
xxHash3128 = item.ReadString(Models.Internal.Rom.xxHash3128Key),
Merge = item.ReadString(Models.Internal.Rom.MergeKey),
Status = item.ReadString(Models.Internal.Rom.StatusKey),
Region = item.ReadString(Models.Internal.Rom.RegionKey),
Flags = item.ReadString(Models.Internal.Rom.FlagsKey),
Offs = item.ReadString(Models.Internal.Rom.OffsetKey),
Serial = item.ReadString(Models.Internal.Rom.SerialKey),
Header = item.ReadString(Models.Internal.Rom.HeaderKey),
Date = item.ReadString(Models.Internal.Rom.DateKey),
Inverted = item.ReadString(Models.Internal.Rom.InvertedKey),
MIA = item.ReadString(Models.Internal.Rom.MIAKey),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
MD5 = item.ReadString(Models.Metadata.Rom.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
SHA256 = item.ReadString(Models.Metadata.Rom.SHA256Key),
SHA384 = item.ReadString(Models.Metadata.Rom.SHA384Key),
SHA512 = item.ReadString(Models.Metadata.Rom.SHA512Key),
SpamSum = item.ReadString(Models.Metadata.Rom.SpamSumKey),
xxHash364 = item.ReadString(Models.Metadata.Rom.xxHash364Key),
xxHash3128 = item.ReadString(Models.Metadata.Rom.xxHash3128Key),
Merge = item.ReadString(Models.Metadata.Rom.MergeKey),
Status = item.ReadString(Models.Metadata.Rom.StatusKey),
Region = item.ReadString(Models.Metadata.Rom.RegionKey),
Flags = item.ReadString(Models.Metadata.Rom.FlagsKey),
Offs = item.ReadString(Models.Metadata.Rom.OffsetKey),
Serial = item.ReadString(Models.Metadata.Rom.SerialKey),
Header = item.ReadString(Models.Metadata.Rom.HeaderKey),
Date = item.ReadString(Models.Metadata.Rom.DateKey),
Inverted = item.ReadString(Models.Metadata.Rom.InvertedKey),
MIA = item.ReadString(Models.Metadata.Rom.MIAKey),
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Internal.Sample"/> to <cref="Models.ClrMamePro.Sample"/>
/// Convert from <cref="Models.Metadata.Sample"/> to <cref="Models.ClrMamePro.Sample"/>
/// </summary>
private static Sample ConvertFromInternalModel(Models.Internal.Sample item)
private static Sample ConvertFromInternalModel(Models.Metadata.Sample item)
{
var sample = new Sample
{
Name = item.ReadString(Models.Internal.Sample.NameKey),
Name = item.ReadString(Models.Metadata.Sample.NameKey),
};
return sample;
}
/// <summary>
/// Convert from <cref="Models.Internal.Sound"/> to <cref="Models.ClrMamePro.Sound"/>
/// Convert from <cref="Models.Metadata.Sound"/> to <cref="Models.ClrMamePro.Sound"/>
/// </summary>
private static Sound ConvertFromInternalModel(Models.Internal.Sound item)
private static Sound ConvertFromInternalModel(Models.Metadata.Sound item)
{
var sound = new Sound
{
Channels = item.ReadString(Models.Internal.Sound.ChannelsKey),
Channels = item.ReadString(Models.Metadata.Sound.ChannelsKey),
};
return sound;
}
/// <summary>
/// Convert from <cref="Models.Internal.Video"/> to <cref="Models.ClrMamePro.Video"/>
/// Convert from <cref="Models.Metadata.Video"/> to <cref="Models.ClrMamePro.Video"/>
/// </summary>
private static Video ConvertFromInternalModel(Models.Internal.Video item)
private static Video ConvertFromInternalModel(Models.Metadata.Video item)
{
var video = new Video
{
Screen = item.ReadString(Models.Internal.Video.ScreenKey),
Orientation = item.ReadString(Models.Internal.Video.OrientationKey),
X = item.ReadString(Models.Internal.Video.WidthKey),
Y = item.ReadString(Models.Internal.Video.HeightKey),
AspectX = item.ReadString(Models.Internal.Video.AspectXKey),
AspectY = item.ReadString(Models.Internal.Video.AspectYKey),
Freq = item.ReadString(Models.Internal.Video.RefreshKey),
Screen = item.ReadString(Models.Metadata.Video.ScreenKey),
Orientation = item.ReadString(Models.Metadata.Video.OrientationKey),
X = item.ReadString(Models.Metadata.Video.WidthKey),
Y = item.ReadString(Models.Metadata.Video.HeightKey),
AspectX = item.ReadString(Models.Metadata.Video.AspectXKey),
AspectY = item.ReadString(Models.Metadata.Video.AspectYKey),
Freq = item.ReadString(Models.Metadata.Video.RefreshKey),
};
return video;
}

View File

@@ -463,21 +463,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.ClrMamePro.MetadataFile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.ClrMamePro.MetadataFile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(MetadataFile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile();
var metadataFile = new Models.Metadata.MetadataFile();
if (item?.ClrMamePro != null)
metadataFile[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item.ClrMamePro);
metadataFile[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item.ClrMamePro);
if (item?.Game != null && item.Game.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Game
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Game
.Where(g => g != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -487,51 +487,51 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.ClrMamePro"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.ClrMamePro.ClrMamePro"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(Models.ClrMamePro.ClrMamePro item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(Models.ClrMamePro.ClrMamePro item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.NameKey] = item.Name,
[Models.Internal.Header.DescriptionKey] = item.Description,
[Models.Internal.Header.RootDirKey] = item.RootDir,
[Models.Internal.Header.CategoryKey] = item.Category,
[Models.Internal.Header.VersionKey] = item.Version,
[Models.Internal.Header.DateKey] = item.Date,
[Models.Internal.Header.AuthorKey] = item.Author,
[Models.Internal.Header.HomepageKey] = item.Homepage,
[Models.Internal.Header.UrlKey] = item.Url,
[Models.Internal.Header.CommentKey] = item.Comment,
[Models.Internal.Header.HeaderKey] = item.Header,
[Models.Internal.Header.TypeKey] = item.Type,
[Models.Internal.Header.ForceMergingKey] = item.ForceMerging,
[Models.Internal.Header.ForceZippingKey] = item.ForceZipping,
[Models.Internal.Header.ForcePackingKey] = item.ForcePacking,
[Models.Metadata.Header.NameKey] = item.Name,
[Models.Metadata.Header.DescriptionKey] = item.Description,
[Models.Metadata.Header.RootDirKey] = item.RootDir,
[Models.Metadata.Header.CategoryKey] = item.Category,
[Models.Metadata.Header.VersionKey] = item.Version,
[Models.Metadata.Header.DateKey] = item.Date,
[Models.Metadata.Header.AuthorKey] = item.Author,
[Models.Metadata.Header.HomepageKey] = item.Homepage,
[Models.Metadata.Header.UrlKey] = item.Url,
[Models.Metadata.Header.CommentKey] = item.Comment,
[Models.Metadata.Header.HeaderKey] = item.Header,
[Models.Metadata.Header.TypeKey] = item.Type,
[Models.Metadata.Header.ForceMergingKey] = item.ForceMerging,
[Models.Metadata.Header.ForceZippingKey] = item.ForceZipping,
[Models.Metadata.Header.ForcePackingKey] = item.ForcePacking,
};
return header;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.GameBase"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.ClrMamePro.GameBase"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(GameBase item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(GameBase item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.NameKey] = item.Name,
[Models.Internal.Machine.DescriptionKey] = item.Description,
[Models.Internal.Machine.YearKey] = item.Year,
[Models.Internal.Machine.ManufacturerKey] = item.Manufacturer,
[Models.Internal.Machine.CategoryKey] = item.Category,
[Models.Internal.Machine.CloneOfKey] = item.CloneOf,
[Models.Internal.Machine.RomOfKey] = item.RomOf,
[Models.Internal.Machine.SampleOfKey] = item.SampleOf,
[Models.Metadata.Machine.NameKey] = item.Name,
[Models.Metadata.Machine.DescriptionKey] = item.Description,
[Models.Metadata.Machine.YearKey] = item.Year,
[Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer,
[Models.Metadata.Machine.CategoryKey] = item.Category,
[Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Models.Metadata.Machine.RomOfKey] = item.RomOf,
[Models.Metadata.Machine.SampleOfKey] = item.SampleOf,
};
if (item.Release != null && item.Release.Any())
{
machine[Models.Internal.Machine.ReleaseKey] = item.Release
machine[Models.Metadata.Machine.ReleaseKey] = item.Release
.Where(r => r != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -539,7 +539,7 @@ namespace SabreTools.Serialization
if (item.BiosSet != null && item.BiosSet.Any())
{
machine[Models.Internal.Machine.BiosSetKey] = item.BiosSet
machine[Models.Metadata.Machine.BiosSetKey] = item.BiosSet
.Where(b => b != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -547,7 +547,7 @@ namespace SabreTools.Serialization
if (item.Rom != null && item.Rom.Any())
{
machine[Models.Internal.Machine.RomKey] = item.Rom
machine[Models.Metadata.Machine.RomKey] = item.Rom
.Where(r => r != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -555,7 +555,7 @@ namespace SabreTools.Serialization
if (item.Disk != null && item.Disk.Any())
{
machine[Models.Internal.Machine.DiskKey] = item.Disk
machine[Models.Metadata.Machine.DiskKey] = item.Disk
.Where(d => d != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -563,7 +563,7 @@ namespace SabreTools.Serialization
if (item.Media != null && item.Media.Any())
{
machine[Models.Internal.Machine.MediaKey] = item.Media
machine[Models.Metadata.Machine.MediaKey] = item.Media
.Where(m => m != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -571,7 +571,7 @@ namespace SabreTools.Serialization
if (item.Sample != null && item.Sample.Any())
{
machine[Models.Internal.Machine.SampleKey] = item.Sample
machine[Models.Metadata.Machine.SampleKey] = item.Sample
.Where(s => s != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -579,7 +579,7 @@ namespace SabreTools.Serialization
if (item.Archive != null && item.Archive.Any())
{
machine[Models.Internal.Machine.ArchiveKey] = item.Archive
machine[Models.Metadata.Machine.ArchiveKey] = item.Archive
.Where(a => a != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -587,7 +587,7 @@ namespace SabreTools.Serialization
if (item.Chip != null && item.Chip.Any())
{
machine[Models.Internal.Machine.ChipKey] = item.Chip
machine[Models.Metadata.Machine.ChipKey] = item.Chip
.Where(c => c != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -595,239 +595,239 @@ namespace SabreTools.Serialization
if (item.Video != null)
{
machine[Models.Internal.Machine.VideoKey] = item.Video
machine[Models.Metadata.Machine.VideoKey] = item.Video
.Where(v => v != null)
.Select(ConvertToInternalModel)
.ToArray();
}
if (item.Sound != null)
machine[Models.Internal.Machine.SoundKey] = ConvertToInternalModel(item.Sound);
machine[Models.Metadata.Machine.SoundKey] = ConvertToInternalModel(item.Sound);
if (item.Input != null)
machine[Models.Internal.Machine.InputKey] = ConvertToInternalModel(item.Input);
machine[Models.Metadata.Machine.InputKey] = ConvertToInternalModel(item.Input);
if (item.DipSwitch != null && item.DipSwitch.Any())
{
machine[Models.Internal.Machine.DipSwitchKey] = item.DipSwitch
machine[Models.Metadata.Machine.DipSwitchKey] = item.DipSwitch
.Where(d => d != null)
.Select(ConvertToInternalModel)
.ToArray();
}
if (item.Driver != null)
machine[Models.Internal.Machine.DriverKey] = ConvertToInternalModel(item.Driver);
machine[Models.Metadata.Machine.DriverKey] = ConvertToInternalModel(item.Driver);
return machine;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Archive"/> to <cref="Models.Internal.Archive"/>
/// Convert from <cref="Models.ClrMamePro.Archive"/> to <cref="Models.Metadata.Archive"/>
/// </summary>
private static Models.Internal.Archive ConvertToInternalModel(Archive item)
private static Models.Metadata.Archive ConvertToInternalModel(Archive item)
{
var archive = new Models.Internal.Archive
var archive = new Models.Metadata.Archive
{
[Models.Internal.Archive.NameKey] = item.Name,
[Models.Metadata.Archive.NameKey] = item.Name,
};
return archive;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.BiosSet"/> to <cref="Models.Internal.BiosSet"/>
/// Convert from <cref="Models.ClrMamePro.BiosSet"/> to <cref="Models.Metadata.BiosSet"/>
/// </summary>
private static Models.Internal.BiosSet ConvertToInternalModel(BiosSet item)
private static Models.Metadata.BiosSet ConvertToInternalModel(BiosSet item)
{
var biosset = new Models.Internal.BiosSet
var biosset = new Models.Metadata.BiosSet
{
[Models.Internal.BiosSet.NameKey] = item.Name,
[Models.Internal.BiosSet.DescriptionKey] = item.Description,
[Models.Internal.BiosSet.DefaultKey] = item.Default,
[Models.Metadata.BiosSet.NameKey] = item.Name,
[Models.Metadata.BiosSet.DescriptionKey] = item.Description,
[Models.Metadata.BiosSet.DefaultKey] = item.Default,
};
return biosset;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Chip"/> to <cref="Models.Internal.Chip"/>
/// Convert from <cref="Models.ClrMamePro.Chip"/> to <cref="Models.Metadata.Chip"/>
/// </summary>
private static Models.Internal.Chip ConvertToInternalModel(Chip item)
private static Models.Metadata.Chip ConvertToInternalModel(Chip item)
{
var chip = new Models.Internal.Chip
var chip = new Models.Metadata.Chip
{
[Models.Internal.Chip.ChipTypeKey] = item.Type,
[Models.Internal.Chip.NameKey] = item.Name,
[Models.Internal.Chip.FlagsKey] = item.Flags,
[Models.Internal.Chip.ClockKey] = item.Clock,
[Models.Metadata.Chip.ChipTypeKey] = item.Type,
[Models.Metadata.Chip.NameKey] = item.Name,
[Models.Metadata.Chip.FlagsKey] = item.Flags,
[Models.Metadata.Chip.ClockKey] = item.Clock,
};
return chip;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.DipSwitch"/> to <cref="Models.Internal.DipSwitch"/>
/// Convert from <cref="Models.ClrMamePro.DipSwitch"/> to <cref="Models.Metadata.DipSwitch"/>
/// </summary>
private static Models.Internal.DipSwitch ConvertToInternalModel(DipSwitch item)
private static Models.Metadata.DipSwitch ConvertToInternalModel(DipSwitch item)
{
var dipswitch = new Models.Internal.DipSwitch
var dipswitch = new Models.Metadata.DipSwitch
{
[Models.Internal.DipSwitch.NameKey] = item.Name,
[Models.Internal.DipSwitch.EntryKey] = item.Entry,
[Models.Internal.DipSwitch.DefaultKey] = item.Default,
[Models.Metadata.DipSwitch.NameKey] = item.Name,
[Models.Metadata.DipSwitch.EntryKey] = item.Entry,
[Models.Metadata.DipSwitch.DefaultKey] = item.Default,
};
return dipswitch;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Disk"/> to <cref="Models.Internal.Disk"/>
/// Convert from <cref="Models.ClrMamePro.Disk"/> to <cref="Models.Metadata.Disk"/>
/// </summary>
private static Models.Internal.Disk ConvertToInternalModel(Disk item)
private static Models.Metadata.Disk ConvertToInternalModel(Disk item)
{
var disk = new Models.Internal.Disk
var disk = new Models.Metadata.Disk
{
[Models.Internal.Disk.NameKey] = item.Name,
[Models.Internal.Disk.MD5Key] = item.MD5,
[Models.Internal.Disk.SHA1Key] = item.SHA1,
[Models.Internal.Disk.MergeKey] = item.Merge,
[Models.Internal.Disk.StatusKey] = item.Status,
[Models.Internal.Disk.FlagsKey] = item.Flags,
[Models.Metadata.Disk.NameKey] = item.Name,
[Models.Metadata.Disk.MD5Key] = item.MD5,
[Models.Metadata.Disk.SHA1Key] = item.SHA1,
[Models.Metadata.Disk.MergeKey] = item.Merge,
[Models.Metadata.Disk.StatusKey] = item.Status,
[Models.Metadata.Disk.FlagsKey] = item.Flags,
};
return disk;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Driver"/> to <cref="Models.Internal.Driver"/>
/// Convert from <cref="Models.ClrMamePro.Driver"/> to <cref="Models.Metadata.Driver"/>
/// </summary>
private static Models.Internal.Driver ConvertToInternalModel(Driver item)
private static Models.Metadata.Driver ConvertToInternalModel(Driver item)
{
var driver = new Models.Internal.Driver
var driver = new Models.Metadata.Driver
{
[Models.Internal.Driver.StatusKey] = item.Status,
[Models.Internal.Driver.ColorKey] = item.Color,
[Models.Internal.Driver.SoundKey] = item.Sound,
[Models.Internal.Driver.PaletteSizeKey] = item.PaletteSize,
[Models.Internal.Driver.BlitKey] = item.Blit,
[Models.Metadata.Driver.StatusKey] = item.Status,
[Models.Metadata.Driver.ColorKey] = item.Color,
[Models.Metadata.Driver.SoundKey] = item.Sound,
[Models.Metadata.Driver.PaletteSizeKey] = item.PaletteSize,
[Models.Metadata.Driver.BlitKey] = item.Blit,
};
return driver;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Input"/> to <cref="Models.Internal.Input"/>
/// Convert from <cref="Models.ClrMamePro.Input"/> to <cref="Models.Metadata.Input"/>
/// </summary>
private static Models.Internal.Input ConvertToInternalModel(Input item)
private static Models.Metadata.Input ConvertToInternalModel(Input item)
{
var input = new Models.Internal.Input
var input = new Models.Metadata.Input
{
[Models.Internal.Input.PlayersKey] = item.Players,
[Models.Internal.Input.ControlKey] = item.Control,
[Models.Internal.Input.ButtonsKey] = item.Buttons,
[Models.Internal.Input.CoinsKey] = item.Coins,
[Models.Internal.Input.TiltKey] = item.Tilt,
[Models.Internal.Input.ServiceKey] = item.Service,
[Models.Metadata.Input.PlayersKey] = item.Players,
[Models.Metadata.Input.ControlKey] = item.Control,
[Models.Metadata.Input.ButtonsKey] = item.Buttons,
[Models.Metadata.Input.CoinsKey] = item.Coins,
[Models.Metadata.Input.TiltKey] = item.Tilt,
[Models.Metadata.Input.ServiceKey] = item.Service,
};
return input;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Media"/> to <cref="Models.Internal.Media"/>
/// Convert from <cref="Models.ClrMamePro.Media"/> to <cref="Models.Metadata.Media"/>
/// </summary>
private static Models.Internal.Media ConvertToInternalModel(Media item)
private static Models.Metadata.Media ConvertToInternalModel(Media item)
{
var media = new Models.Internal.Media
var media = new Models.Metadata.Media
{
[Models.Internal.Media.NameKey] = item.Name,
[Models.Internal.Media.MD5Key] = item.MD5,
[Models.Internal.Media.SHA1Key] = item.SHA1,
[Models.Internal.Media.SHA256Key] = item.SHA256,
[Models.Internal.Media.SpamSumKey] = item.SpamSum,
[Models.Metadata.Media.NameKey] = item.Name,
[Models.Metadata.Media.MD5Key] = item.MD5,
[Models.Metadata.Media.SHA1Key] = item.SHA1,
[Models.Metadata.Media.SHA256Key] = item.SHA256,
[Models.Metadata.Media.SpamSumKey] = item.SpamSum,
};
return media;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Release"/> to <cref="Models.Internal.Release"/>
/// Convert from <cref="Models.ClrMamePro.Release"/> to <cref="Models.Metadata.Release"/>
/// </summary>
private static Models.Internal.Release ConvertToInternalModel(Release item)
private static Models.Metadata.Release ConvertToInternalModel(Release item)
{
var release = new Models.Internal.Release
var release = new Models.Metadata.Release
{
[Models.Internal.Release.NameKey] = item.Name,
[Models.Internal.Release.RegionKey] = item.Region,
[Models.Internal.Release.LanguageKey] = item.Language,
[Models.Internal.Release.DateKey] = item.Date,
[Models.Internal.Release.DefaultKey] = item.Default,
[Models.Metadata.Release.NameKey] = item.Name,
[Models.Metadata.Release.RegionKey] = item.Region,
[Models.Metadata.Release.LanguageKey] = item.Language,
[Models.Metadata.Release.DateKey] = item.Date,
[Models.Metadata.Release.DefaultKey] = item.Default,
};
return release;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Rom"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.ClrMamePro.Rom"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(Rom item)
private static Models.Metadata.Rom ConvertToInternalModel(Rom item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.Name,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Internal.Rom.CRCKey] = item.CRC,
[Models.Internal.Rom.MD5Key] = item.MD5,
[Models.Internal.Rom.SHA1Key] = item.SHA1,
[Models.Internal.Rom.SHA256Key] = item.SHA256,
[Models.Internal.Rom.SHA384Key] = item.SHA384,
[Models.Internal.Rom.SHA512Key] = item.SHA512,
[Models.Internal.Rom.SpamSumKey] = item.SpamSum,
[Models.Internal.Rom.xxHash364Key] = item.xxHash364,
[Models.Internal.Rom.xxHash3128Key] = item.xxHash3128,
[Models.Internal.Rom.MergeKey] = item.Merge,
[Models.Internal.Rom.StatusKey] = item.Status,
[Models.Internal.Rom.RegionKey] = item.Region,
[Models.Internal.Rom.FlagsKey] = item.Flags,
[Models.Internal.Rom.OffsetKey] = item.Offs,
[Models.Internal.Rom.SerialKey] = item.Serial,
[Models.Internal.Rom.HeaderKey] = item.Header,
[Models.Internal.Rom.DateKey] = item.Date,
[Models.Internal.Rom.InvertedKey] = item.Inverted,
[Models.Internal.Rom.MIAKey] = item.MIA,
[Models.Metadata.Rom.NameKey] = item.Name,
[Models.Metadata.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.CRCKey] = item.CRC,
[Models.Metadata.Rom.MD5Key] = item.MD5,
[Models.Metadata.Rom.SHA1Key] = item.SHA1,
[Models.Metadata.Rom.SHA256Key] = item.SHA256,
[Models.Metadata.Rom.SHA384Key] = item.SHA384,
[Models.Metadata.Rom.SHA512Key] = item.SHA512,
[Models.Metadata.Rom.SpamSumKey] = item.SpamSum,
[Models.Metadata.Rom.xxHash364Key] = item.xxHash364,
[Models.Metadata.Rom.xxHash3128Key] = item.xxHash3128,
[Models.Metadata.Rom.MergeKey] = item.Merge,
[Models.Metadata.Rom.StatusKey] = item.Status,
[Models.Metadata.Rom.RegionKey] = item.Region,
[Models.Metadata.Rom.FlagsKey] = item.Flags,
[Models.Metadata.Rom.OffsetKey] = item.Offs,
[Models.Metadata.Rom.SerialKey] = item.Serial,
[Models.Metadata.Rom.HeaderKey] = item.Header,
[Models.Metadata.Rom.DateKey] = item.Date,
[Models.Metadata.Rom.InvertedKey] = item.Inverted,
[Models.Metadata.Rom.MIAKey] = item.MIA,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Sample"/> to <cref="Models.Internal.Sample"/>
/// Convert from <cref="Models.ClrMamePro.Sample"/> to <cref="Models.Metadata.Sample"/>
/// </summary>
private static Models.Internal.Sample ConvertToInternalModel(Sample item)
private static Models.Metadata.Sample ConvertToInternalModel(Sample item)
{
var sample = new Models.Internal.Sample
var sample = new Models.Metadata.Sample
{
[Models.Internal.Sample.NameKey] = item.Name,
[Models.Metadata.Sample.NameKey] = item.Name,
};
return sample;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Sound"/> to <cref="Models.Internal.Sound"/>
/// Convert from <cref="Models.ClrMamePro.Sound"/> to <cref="Models.Metadata.Sound"/>
/// </summary>
private static Models.Internal.Sound ConvertToInternalModel(Sound item)
private static Models.Metadata.Sound ConvertToInternalModel(Sound item)
{
var sound = new Models.Internal.Sound
var sound = new Models.Metadata.Sound
{
[Models.Internal.Sound.ChannelsKey] = item.Channels,
[Models.Metadata.Sound.ChannelsKey] = item.Channels,
};
return sound;
}
/// <summary>
/// Convert from <cref="Models.ClrMamePro.Video"/> to <cref="Models.Internal.Video"/>
/// Convert from <cref="Models.ClrMamePro.Video"/> to <cref="Models.Metadata.Video"/>
/// </summary>
private static Models.Internal.Video ConvertToInternalModel(Video item)
private static Models.Metadata.Video ConvertToInternalModel(Video item)
{
var video = new Models.Internal.Video
var video = new Models.Metadata.Video
{
[Models.Internal.Video.ScreenKey] = item.Screen,
[Models.Internal.Video.OrientationKey] = item.Orientation,
[Models.Internal.Video.WidthKey] = item.X,
[Models.Internal.Video.HeightKey] = item.Y,
[Models.Internal.Video.AspectXKey] = item.AspectX,
[Models.Internal.Video.AspectYKey] = item.AspectY,
[Models.Internal.Video.RefreshKey] = item.Freq,
[Models.Metadata.Video.ScreenKey] = item.Screen,
[Models.Metadata.Video.OrientationKey] = item.Orientation,
[Models.Metadata.Video.WidthKey] = item.X,
[Models.Metadata.Video.HeightKey] = item.Y,
[Models.Metadata.Video.AspectXKey] = item.AspectX,
[Models.Metadata.Video.AspectYKey] = item.AspectY,
[Models.Metadata.Video.RefreshKey] = item.Freq,
};
return video;
}

View File

@@ -233,20 +233,20 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.DosCenter.MetadataFile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.DosCenter.MetadataFile"/>
/// </summary>
public static MetadataFile? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static MetadataFile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new MetadataFile();
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
if (header != null)
metadataFile.DosCenter = ConvertHeaderFromInternalModel(header);
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Game = machines
@@ -259,34 +259,34 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.DosCenter.DosCenter"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.DosCenter.DosCenter"/>
/// </summary>
private static Models.DosCenter.DosCenter ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static Models.DosCenter.DosCenter ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var dosCenter = new Models.DosCenter.DosCenter
{
Name = item.ReadString(Models.Internal.Header.NameKey),
Description = item.ReadString(Models.Internal.Header.DescriptionKey),
Version = item.ReadString(Models.Internal.Header.VersionKey),
Date = item.ReadString(Models.Internal.Header.DateKey),
Author = item.ReadString(Models.Internal.Header.AuthorKey),
Homepage = item.ReadString(Models.Internal.Header.HomepageKey),
Comment = item.ReadString(Models.Internal.Header.CommentKey),
Name = item.ReadString(Models.Metadata.Header.NameKey),
Description = item.ReadString(Models.Metadata.Header.DescriptionKey),
Version = item.ReadString(Models.Metadata.Header.VersionKey),
Date = item.ReadString(Models.Metadata.Header.DateKey),
Author = item.ReadString(Models.Metadata.Header.AuthorKey),
Homepage = item.ReadString(Models.Metadata.Header.HomepageKey),
Comment = item.ReadString(Models.Metadata.Header.CommentKey),
};
return dosCenter;
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to <cref="Models.DosCenter.Game"/>
/// Convert from <cref="Models.Metadata.Machine"/> to <cref="Models.DosCenter.Game"/>
/// </summary>
private static Game ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Game ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var game = new Game
{
Name = item.ReadString(Models.Internal.Machine.NameKey),
Name = item.ReadString(Models.Metadata.Machine.NameKey),
};
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms != null && roms.Any())
{
game.File = roms
@@ -299,16 +299,16 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.DosCenter.File"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.DosCenter.File"/>
/// </summary>
private static Models.DosCenter.File ConvertFromInternalModel(Models.Internal.Rom item)
private static Models.DosCenter.File ConvertFromInternalModel(Models.Metadata.Rom item)
{
var file = new Models.DosCenter.File
{
Name = item.ReadString(Models.Internal.Rom.NameKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
CRC = item.ReadString(Models.Internal.Rom.CRCKey),
Date = item.ReadString(Models.Internal.Rom.DateKey),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
Date = item.ReadString(Models.Metadata.Rom.DateKey),
};
return file;
}

View File

@@ -149,21 +149,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.DosCenter.MetadataFile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.DosCenter.MetadataFile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(MetadataFile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile();
var metadataFile = new Models.Metadata.MetadataFile();
if (item?.DosCenter != null)
metadataFile[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item.DosCenter);
metadataFile[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item.DosCenter);
if (item?.Game != null && item.Game.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Game
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Game
.Where(g => g != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -173,36 +173,36 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.DosCenter.DosCenter"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.DosCenter.DosCenter"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(Models.DosCenter.DosCenter item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(Models.DosCenter.DosCenter item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.NameKey] = item.Name,
[Models.Internal.Header.DescriptionKey] = item.Description,
[Models.Internal.Header.VersionKey] = item.Version,
[Models.Internal.Header.DateKey] = item.Date,
[Models.Internal.Header.AuthorKey] = item.Author,
[Models.Internal.Header.HomepageKey] = item.Homepage,
[Models.Internal.Header.CommentKey] = item.Comment,
[Models.Metadata.Header.NameKey] = item.Name,
[Models.Metadata.Header.DescriptionKey] = item.Description,
[Models.Metadata.Header.VersionKey] = item.Version,
[Models.Metadata.Header.DateKey] = item.Date,
[Models.Metadata.Header.AuthorKey] = item.Author,
[Models.Metadata.Header.HomepageKey] = item.Homepage,
[Models.Metadata.Header.CommentKey] = item.Comment,
};
return header;
}
/// <summary>
/// Convert from <cref="Models.DosCenter.Game"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.DosCenter.Game"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Game item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Game item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.NameKey] = item.Name,
[Models.Metadata.Machine.NameKey] = item.Name,
};
if (item.File != null && item.File.Any())
{
machine[Models.Internal.Machine.RomKey] = item.File
machine[Models.Metadata.Machine.RomKey] = item.File
.Where(f => f != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -212,16 +212,16 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.DosCenter.File"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.DosCenter.File"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(Models.DosCenter.File item)
private static Models.Metadata.Rom ConvertToInternalModel(Models.DosCenter.File item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.Name,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Internal.Rom.CRCKey] = item.CRC,
[Models.Internal.Rom.DateKey] = item.Date,
[Models.Metadata.Rom.NameKey] = item.Name,
[Models.Metadata.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.CRCKey] = item.CRC,
[Models.Metadata.Rom.DateKey] = item.Date,
};
return rom;
}

View File

@@ -81,16 +81,16 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.EverdriveSMDB.MetadataFile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.EverdriveSMDB.MetadataFile"/>
/// </summary>
public static MetadataFile? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static MetadataFile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new MetadataFile();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Row = machines
@@ -103,11 +103,11 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to an array of <cref="Models.EverdriveSMDB.Row"/>
/// Convert from <cref="Models.Metadata.Machine"/> to an array of <cref="Models.EverdriveSMDB.Row"/>
/// </summary>
private static Row[] ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Row[] ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms == null || !roms.Any())
return Array.Empty<Row>();
@@ -118,18 +118,18 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.EverdriveSMDB.Row"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.EverdriveSMDB.Row"/>
/// </summary>
private static Row ConvertFromInternalModel(Models.Internal.Rom item)
private static Row ConvertFromInternalModel(Models.Metadata.Rom item)
{
var row = new Row
{
SHA256 = item.ReadString(Models.Internal.Rom.SHA256Key),
Name = item.ReadString(Models.Internal.Rom.NameKey),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
MD5 = item.ReadString(Models.Internal.Rom.MD5Key),
CRC32 = item.ReadString(Models.Internal.Rom.CRCKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
SHA256 = item.ReadString(Models.Metadata.Rom.SHA256Key),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
MD5 = item.ReadString(Models.Metadata.Rom.MD5Key),
CRC32 = item.ReadString(Models.Metadata.Rom.CRCKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
};
return row;
}

View File

@@ -89,21 +89,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.EverdriveSMDB.MetadataFile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.EverdriveSMDB.MetadataFile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(MetadataFile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
};
if (item?.Row != null && item.Row.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Row
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Row
.Where(r => r != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -113,42 +113,42 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.EverdriveSMDB.MetadataFile"/> to <cref=Models.Internal."Header"/>
/// Convert from <cref="Models.EverdriveSMDB.MetadataFile"/> to <cref=Models.Metadata."Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel()
private static Models.Metadata.Header ConvertHeaderToInternalModel()
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.NameKey] = "Everdrive SMDB",
[Models.Metadata.Header.NameKey] = "Everdrive SMDB",
};
return header;
}
/// <summary>
/// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Row item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Row item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.RomKey] = ConvertToInternalModel(item),
[Models.Metadata.Machine.RomKey] = ConvertToInternalModel(item),
};
return machine;
}
/// <summary>
/// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.EverdriveSMDB.Row"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(Row item)
private static Models.Metadata.Rom ConvertToInternalModel(Row item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.SHA256Key] = item.SHA256,
[Models.Internal.Rom.NameKey] = item.Name,
[Models.Internal.Rom.SHA1Key] = item.SHA1,
[Models.Internal.Rom.MD5Key] = item.MD5,
[Models.Internal.Rom.CRCKey] = item.CRC32,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.SHA256Key] = item.SHA256,
[Models.Metadata.Rom.NameKey] = item.Name,
[Models.Metadata.Rom.SHA1Key] = item.SHA1,
[Models.Metadata.Rom.MD5Key] = item.MD5,
[Models.Metadata.Rom.CRCKey] = item.CRC32,
[Models.Metadata.Rom.SizeKey] = item.Size,
};
return rom;
}

View File

@@ -145,15 +145,15 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to an array of <cref="Models.Hashfile.Hashfile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to an array of <cref="Models.Hashfile.Hashfile"/>
/// </summary>
/// <remarks>TODO: Add machine name prefixes to all items</remarks>
public static Models.Hashfile.Hashfile? ConvertFromInternalModel(Models.Internal.MetadataFile? item, Hash hash)
public static Models.Hashfile.Hashfile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item, Hash hash)
{
if (item == null)
return null;
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines == null || !machines.Any())
return null;
@@ -208,14 +208,14 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to an array of <cref="Models.Hashfile.Hashfile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to an array of <cref="Models.Hashfile.Hashfile"/>
/// </summary>
public static Models.Hashfile.Hashfile[]? ConvertArrayFromInternalModel(Models.Internal.MetadataFile? item, Hash hash)
public static Models.Hashfile.Hashfile[]? ConvertArrayFromInternalModel(Models.Metadata.MetadataFile? item, Hash hash)
{
if (item == null)
return null;
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
return machines
@@ -228,11 +228,11 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to <cref="Models.Hashfile.Hashfile"/>
/// Convert from <cref="Models.Metadata.Machine"/> to <cref="Models.Hashfile.Hashfile"/>
/// </summary>
private static Models.Hashfile.Hashfile ConvertMachineFromInternalModel(Models.Internal.Machine item, Hash hash)
private static Models.Hashfile.Hashfile ConvertMachineFromInternalModel(Models.Metadata.Machine item, Hash hash)
{
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms == null)
return new Models.Hashfile.Hashfile();
@@ -284,92 +284,92 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Hashfile.MD5"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Hashfile.MD5"/>
/// </summary>
private static MD5 ConvertToMD5(Models.Internal.Rom item)
private static MD5 ConvertToMD5(Models.Metadata.Rom item)
{
var md5 = new MD5
{
Hash = item.ReadString(Models.Internal.Rom.MD5Key),
File = item.ReadString(Models.Internal.Rom.NameKey),
Hash = item.ReadString(Models.Metadata.Rom.MD5Key),
File = item.ReadString(Models.Metadata.Rom.NameKey),
};
return md5;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Hashfile.SFV"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Hashfile.SFV"/>
/// </summary>
private static SFV ConvertToSFV(Models.Internal.Rom item)
private static SFV ConvertToSFV(Models.Metadata.Rom item)
{
var sfv = new SFV
{
File = item.ReadString(Models.Internal.Rom.NameKey),
Hash = item.ReadString(Models.Internal.Rom.CRCKey),
File = item.ReadString(Models.Metadata.Rom.NameKey),
Hash = item.ReadString(Models.Metadata.Rom.CRCKey),
};
return sfv;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Hashfile.SHA1"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Hashfile.SHA1"/>
/// </summary>
private static SHA1 ConvertToSHA1(Models.Internal.Rom item)
private static SHA1 ConvertToSHA1(Models.Metadata.Rom item)
{
var sha1 = new SHA1
{
Hash = item.ReadString(Models.Internal.Rom.SHA1Key),
File = item.ReadString(Models.Internal.Rom.NameKey),
Hash = item.ReadString(Models.Metadata.Rom.SHA1Key),
File = item.ReadString(Models.Metadata.Rom.NameKey),
};
return sha1;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Hashfile.SHA256"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Hashfile.SHA256"/>
/// </summary>
private static SHA256 ConvertToSHA256(Models.Internal.Rom item)
private static SHA256 ConvertToSHA256(Models.Metadata.Rom item)
{
var sha256 = new SHA256
{
Hash = item.ReadString(Models.Internal.Rom.SHA256Key),
File = item.ReadString(Models.Internal.Rom.NameKey),
Hash = item.ReadString(Models.Metadata.Rom.SHA256Key),
File = item.ReadString(Models.Metadata.Rom.NameKey),
};
return sha256;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Hashfile.SHA384"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Hashfile.SHA384"/>
/// </summary>
private static SHA384 ConvertToSHA384(Models.Internal.Rom item)
private static SHA384 ConvertToSHA384(Models.Metadata.Rom item)
{
var sha384 = new SHA384
{
Hash = item.ReadString(Models.Internal.Rom.SHA384Key),
File = item.ReadString(Models.Internal.Rom.NameKey),
Hash = item.ReadString(Models.Metadata.Rom.SHA384Key),
File = item.ReadString(Models.Metadata.Rom.NameKey),
};
return sha384;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Hashfile.SHA512"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Hashfile.SHA512"/>
/// </summary>
private static SHA512 ConvertToSHA512(Models.Internal.Rom item)
private static SHA512 ConvertToSHA512(Models.Metadata.Rom item)
{
var sha512 = new SHA512
{
Hash = item.ReadString(Models.Internal.Rom.SHA512Key),
File = item.ReadString(Models.Internal.Rom.NameKey),
Hash = item.ReadString(Models.Metadata.Rom.SHA512Key),
File = item.ReadString(Models.Metadata.Rom.NameKey),
};
return sha512;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Hashfile.SpamSum"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Hashfile.SpamSum"/>
/// </summary>
private static SpamSum ConvertToSpamSum(Models.Internal.Rom item)
private static SpamSum ConvertToSpamSum(Models.Metadata.Rom item)
{
var spamsum = new SpamSum
{
Hash = item.ReadString(Models.Internal.Rom.SpamSumKey),
File = item.ReadString(Models.Internal.Rom.NameKey),
Hash = item.ReadString(Models.Metadata.Rom.SpamSumKey),
File = item.ReadString(Models.Metadata.Rom.NameKey),
};
return spamsum;
}

View File

@@ -256,148 +256,148 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(Models.Hashfile.Hashfile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(Models.Hashfile.Hashfile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
};
var machine = ConvertMachineToInternalModel(item);
metadataFile[Models.Internal.MetadataFile.MachineKey] = new Models.Internal.Machine[] { machine };
metadataFile[Models.Metadata.MetadataFile.MachineKey] = new Models.Metadata.Machine[] { machine };
return metadataFile;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel()
private static Models.Metadata.Header ConvertHeaderToInternalModel()
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.NameKey] = "Hashfile",
[Models.Metadata.Header.NameKey] = "Hashfile",
};
return header;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.Hashfile.Hashfile"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Models.Hashfile.Hashfile item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Models.Hashfile.Hashfile item)
{
var machine = new Models.Internal.Machine();
var machine = new Models.Metadata.Machine();
if (item.SFV != null && item.SFV.Any())
machine[Models.Internal.Machine.RomKey] = item.SFV.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.SFV.Select(ConvertToInternalModel).ToArray();
else if (item.MD5 != null && item.MD5.Any())
machine[Models.Internal.Machine.RomKey] = item.MD5.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.MD5.Select(ConvertToInternalModel).ToArray();
else if (item.SHA1 != null && item.SHA1.Any())
machine[Models.Internal.Machine.RomKey] = item.SHA1.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.SHA1.Select(ConvertToInternalModel).ToArray();
else if (item.SHA256 != null && item.SHA256.Any())
machine[Models.Internal.Machine.RomKey] = item.SHA256.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.SHA256.Select(ConvertToInternalModel).ToArray();
else if (item.SHA384 != null && item.SHA384.Any())
machine[Models.Internal.Machine.RomKey] = item.SHA384.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.SHA384.Select(ConvertToInternalModel).ToArray();
else if (item.SHA512 != null && item.SHA512.Any())
machine[Models.Internal.Machine.RomKey] = item.SHA512.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.SHA512.Select(ConvertToInternalModel).ToArray();
else if (item.SpamSum != null && item.SpamSum.Any())
machine[Models.Internal.Machine.RomKey] = item.SpamSum.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.SpamSum.Select(ConvertToInternalModel).ToArray();
return machine;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.MD5"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Hashfile.MD5"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(MD5 item)
private static Models.Metadata.Rom ConvertToInternalModel(MD5 item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.MD5Key] = item.Hash,
[Models.Internal.Rom.NameKey] = item.File,
[Models.Metadata.Rom.MD5Key] = item.Hash,
[Models.Metadata.Rom.NameKey] = item.File,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.SFV"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Hashfile.SFV"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(SFV item)
private static Models.Metadata.Rom ConvertToInternalModel(SFV item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.File,
[Models.Internal.Rom.CRCKey] = item.Hash,
[Models.Metadata.Rom.NameKey] = item.File,
[Models.Metadata.Rom.CRCKey] = item.Hash,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.SHA1"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Hashfile.SHA1"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(SHA1 item)
private static Models.Metadata.Rom ConvertToInternalModel(SHA1 item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.SHA1Key] = item.Hash,
[Models.Internal.Rom.NameKey] = item.File,
[Models.Metadata.Rom.SHA1Key] = item.Hash,
[Models.Metadata.Rom.NameKey] = item.File,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.SHA256"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Hashfile.SHA256"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(SHA256 item)
private static Models.Metadata.Rom ConvertToInternalModel(SHA256 item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.SHA256Key] = item.Hash,
[Models.Internal.Rom.NameKey] = item.File,
[Models.Metadata.Rom.SHA256Key] = item.Hash,
[Models.Metadata.Rom.NameKey] = item.File,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.SHA384"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Hashfile.SHA384"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(SHA384 item)
private static Models.Metadata.Rom ConvertToInternalModel(SHA384 item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.SHA384Key] = item.Hash,
[Models.Internal.Rom.NameKey] = item.File,
[Models.Metadata.Rom.SHA384Key] = item.Hash,
[Models.Metadata.Rom.NameKey] = item.File,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.SHA512"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Hashfile.SHA512"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(SHA512 item)
private static Models.Metadata.Rom ConvertToInternalModel(SHA512 item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.SHA512Key] = item.Hash,
[Models.Internal.Rom.NameKey] = item.File,
[Models.Metadata.Rom.SHA512Key] = item.Hash,
[Models.Metadata.Rom.NameKey] = item.File,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Hashfile.SpamSum"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Hashfile.SpamSum"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(SpamSum item)
private static Models.Metadata.Rom ConvertToInternalModel(SpamSum item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.SpamSumKey] = item.Hash,
[Models.Internal.Rom.NameKey] = item.File,
[Models.Metadata.Rom.SpamSumKey] = item.Hash,
[Models.Metadata.Rom.NameKey] = item.File,
};
return rom;
}

View File

@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SabreTools.Models.Internal;
using SabreTools.Models.Metadata;
namespace SabreTools.Serialization
{

View File

@@ -193,16 +193,16 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.Listrom.MetadataFile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.Listrom.MetadataFile"/>
/// </summary>
public static MetadataFile? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static MetadataFile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new MetadataFile();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Set = machines
@@ -215,25 +215,25 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to <cref="Models.Listrom.Set"/>
/// Convert from <cref="Models.Metadata.Machine"/> to <cref="Models.Listrom.Set"/>
/// </summary>
private static Set ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Set ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var set = new Set();
if (item.ReadString(Models.Internal.Machine.IsDeviceKey) == "yes")
set.Device = item.ReadString(Models.Internal.Machine.NameKey);
if (item.ReadString(Models.Metadata.Machine.IsDeviceKey) == "yes")
set.Device = item.ReadString(Models.Metadata.Machine.NameKey);
else
set.Driver = item.ReadString(Models.Internal.Machine.NameKey);
set.Driver = item.ReadString(Models.Metadata.Machine.NameKey);
var rowItems = new List<Row>();
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms != null)
{
rowItems.AddRange(roms.Where(r => r != null).Select(ConvertFromInternalModel));
}
var disks = item.Read<Models.Internal.Disk[]>(Models.Internal.Machine.DiskKey);
var disks = item.Read<Models.Metadata.Disk[]>(Models.Metadata.Machine.DiskKey);
if (disks != null)
rowItems.AddRange(disks.Where(d => d != null).Select(ConvertFromInternalModel));
@@ -242,41 +242,41 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Disk"/> to <cref="Models.Listrom.Row"/>
/// Convert from <cref="Models.Metadata.Disk"/> to <cref="Models.Listrom.Row"/>
/// </summary>
private static Row ConvertFromInternalModel(Models.Internal.Disk item)
private static Row ConvertFromInternalModel(Models.Metadata.Disk item)
{
var row = new Row
{
Name = item.ReadString(Models.Internal.Disk.NameKey),
MD5 = item.ReadString(Models.Internal.Disk.MD5Key),
SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key),
Name = item.ReadString(Models.Metadata.Disk.NameKey),
MD5 = item.ReadString(Models.Metadata.Disk.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Disk.SHA1Key),
};
if (item[Models.Internal.Disk.StatusKey] as string == "nodump")
if (item[Models.Metadata.Disk.StatusKey] as string == "nodump")
row.NoGoodDumpKnown = true;
else if (item[Models.Internal.Disk.StatusKey] as string == "baddump")
else if (item[Models.Metadata.Disk.StatusKey] as string == "baddump")
row.Bad = true;
return row;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Listrom.Row"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Listrom.Row"/>
/// </summary>
private static Row ConvertFromInternalModel(Models.Internal.Rom item)
private static Row ConvertFromInternalModel(Models.Metadata.Rom item)
{
var row = new Row
{
Name = item.ReadString(Models.Internal.Rom.NameKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
CRC = item.ReadString(Models.Internal.Rom.CRCKey),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
};
if (item[Models.Internal.Rom.StatusKey] as string == "nodump")
if (item[Models.Metadata.Rom.StatusKey] as string == "nodump")
row.NoGoodDumpKnown = true;
else if (item[Models.Internal.Rom.StatusKey] as string == "baddump")
else if (item[Models.Metadata.Rom.StatusKey] as string == "baddump")
row.Bad = true;
return row;

View File

@@ -183,21 +183,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Listrom.MetadataFile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.Listrom.MetadataFile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(MetadataFile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
};
if (item?.Set != null && item.Set.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Set
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Set
.Where(s => s != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -209,81 +209,81 @@ namespace SabreTools.Serialization
/// <summary>
/// Convert from <cref="Models.Listrom.MetadataFile"/> to <cref="Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel()
private static Models.Metadata.Header ConvertHeaderToInternalModel()
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.NameKey] = "MAME Listrom",
[Models.Metadata.Header.NameKey] = "MAME Listrom",
};
return header;
}
/// <summary>
/// Convert from <cref="Models.Listrom.Set"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.Listrom.Set"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Set item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Set item)
{
var machine = new Models.Internal.Machine();
var machine = new Models.Metadata.Machine();
if (!string.IsNullOrWhiteSpace(item.Device))
{
machine[Models.Internal.Machine.NameKey] = item.Device;
machine[Models.Internal.Machine.IsDeviceKey] = "yes";
machine[Models.Metadata.Machine.NameKey] = item.Device;
machine[Models.Metadata.Machine.IsDeviceKey] = "yes";
}
else
{
machine[Models.Internal.Machine.NameKey] = item.Driver;
machine[Models.Metadata.Machine.NameKey] = item.Driver;
}
if (item.Row != null && item.Row.Any())
{
var datItems = new List<Models.Internal.DatItem>();
var datItems = new List<Models.Metadata.DatItem>();
foreach (var file in item.Row)
{
datItems.Add(ConvertToInternalModel(file));
}
machine[Models.Internal.Machine.DiskKey] = datItems.Where(i => i.ReadString(Models.Internal.DatItem.TypeKey) == "disk")?.ToArray();
machine[Models.Internal.Machine.RomKey] = datItems.Where(i => i.ReadString(Models.Internal.DatItem.TypeKey) == "rom")?.ToArray();
machine[Models.Metadata.Machine.DiskKey] = datItems.Where(i => i.ReadString(Models.Metadata.DatItem.TypeKey) == "disk")?.ToArray();
machine[Models.Metadata.Machine.RomKey] = datItems.Where(i => i.ReadString(Models.Metadata.DatItem.TypeKey) == "rom")?.ToArray();
}
return machine;
}
/// <summary>
/// Convert from <cref="Models.Listrom.Row"/> to <cref="Models.Internal.DatItem"/>
/// Convert from <cref="Models.Listrom.Row"/> to <cref="Models.Metadata.DatItem"/>
/// </summary>
private static Models.Internal.DatItem ConvertToInternalModel(Row item)
private static Models.Metadata.DatItem ConvertToInternalModel(Row item)
{
if (item.Size == null)
{
var disk = new Models.Internal.Disk
var disk = new Models.Metadata.Disk
{
[Models.Internal.Disk.NameKey] = item.Name,
[Models.Internal.Disk.MD5Key] = item.MD5,
[Models.Internal.Disk.SHA1Key] = item.SHA1,
[Models.Metadata.Disk.NameKey] = item.Name,
[Models.Metadata.Disk.MD5Key] = item.MD5,
[Models.Metadata.Disk.SHA1Key] = item.SHA1,
};
if (item.NoGoodDumpKnown)
disk[Models.Internal.Disk.StatusKey] = "nodump";
disk[Models.Metadata.Disk.StatusKey] = "nodump";
else if (item.Bad)
disk[Models.Internal.Disk.StatusKey] = "baddump";
disk[Models.Metadata.Disk.StatusKey] = "baddump";
return disk;
}
else
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.Name,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Internal.Rom.CRCKey] = item.CRC,
[Models.Internal.Rom.SHA1Key] = item.SHA1,
[Models.Metadata.Rom.NameKey] = item.Name,
[Models.Metadata.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.CRCKey] = item.CRC,
[Models.Metadata.Rom.SHA1Key] = item.SHA1,
};
if (item.NoGoodDumpKnown)
rom[Models.Internal.Rom.StatusKey] = "nodump";
rom[Models.Metadata.Rom.StatusKey] = "nodump";
else if (item.Bad)
rom[Models.Internal.Rom.StatusKey] = "baddump";
rom[Models.Metadata.Rom.StatusKey] = "baddump";
return rom;
}

View File

@@ -11,17 +11,17 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.MetadataFile"/> to <cref="Models.Listxml.M1"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.MetadataFile"/> to <cref="Models.Listxml.M1"/>
/// </summary>
public static M1? ConvertM1FromInternalModel(Models.Internal.MetadataFile? item)
public static M1? ConvertM1FromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var m1 = header != null ? ConvertM1FromInternalModel(header) : new M1();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
m1.Game = machines
@@ -34,17 +34,17 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.MetadataFile"/> to <cref="Models.Listxml.Mame"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.MetadataFile"/> to <cref="Models.Listxml.Mame"/>
/// </summary>
public static Mame? ConvertMameFromInternalModel(Models.Internal.MetadataFile? item)
public static Mame? ConvertMameFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var mame = header != null ? ConvertMameFromInternalModel(header) : new Mame();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
mame.Game = machines
@@ -57,55 +57,55 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Header"/> to <cref="Models.Listxml.M1"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Header"/> to <cref="Models.Listxml.M1"/>
/// </summary>
private static M1 ConvertM1FromInternalModel(Models.Internal.Header item)
private static M1 ConvertM1FromInternalModel(Models.Metadata.Header item)
{
var m1 = new M1
{
Version = item.ReadString(Models.Internal.Header.VersionKey),
Version = item.ReadString(Models.Metadata.Header.VersionKey),
};
return m1;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Header"/> to <cref="Models.Listxml.Mame"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Header"/> to <cref="Models.Listxml.Mame"/>
/// </summary>
private static Mame ConvertMameFromInternalModel(Models.Internal.Header item)
private static Mame ConvertMameFromInternalModel(Models.Metadata.Header item)
{
var mame = new Mame
{
Build = item.ReadString(Models.Internal.Header.BuildKey),
Debug = item.ReadString(Models.Internal.Header.DebugKey),
MameConfig = item.ReadString(Models.Internal.Header.MameConfigKey),
Build = item.ReadString(Models.Metadata.Header.BuildKey),
Debug = item.ReadString(Models.Metadata.Header.DebugKey),
MameConfig = item.ReadString(Models.Metadata.Header.MameConfigKey),
};
return mame;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Machine"/> to <cref="Models.Listxml.GameBase"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Machine"/> to <cref="Models.Listxml.GameBase"/>
/// </summary>
private static GameBase ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static GameBase ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var machine = new Machine
{
Name = item.ReadString(Models.Internal.Machine.NameKey),
SourceFile = item.ReadString(Models.Internal.Machine.SourceFileKey),
IsBios = item.ReadString(Models.Internal.Machine.IsBiosKey),
IsDevice = item.ReadString(Models.Internal.Machine.IsDeviceKey),
IsMechanical = item.ReadString(Models.Internal.Machine.IsMechanicalKey),
Runnable = item.ReadString(Models.Internal.Machine.RunnableKey),
CloneOf = item.ReadString(Models.Internal.Machine.CloneOfKey),
RomOf = item.ReadString(Models.Internal.Machine.RomOfKey),
SampleOf = item.ReadString(Models.Internal.Machine.SampleOfKey),
Description = item.ReadString(Models.Internal.Machine.DescriptionKey),
Year = item.ReadString(Models.Internal.Machine.YearKey),
Manufacturer = item.ReadString(Models.Internal.Machine.ManufacturerKey),
History = item.ReadString(Models.Internal.Machine.HistoryKey),
Name = item.ReadString(Models.Metadata.Machine.NameKey),
SourceFile = item.ReadString(Models.Metadata.Machine.SourceFileKey),
IsBios = item.ReadString(Models.Metadata.Machine.IsBiosKey),
IsDevice = item.ReadString(Models.Metadata.Machine.IsDeviceKey),
IsMechanical = item.ReadString(Models.Metadata.Machine.IsMechanicalKey),
Runnable = item.ReadString(Models.Metadata.Machine.RunnableKey),
CloneOf = item.ReadString(Models.Metadata.Machine.CloneOfKey),
RomOf = item.ReadString(Models.Metadata.Machine.RomOfKey),
SampleOf = item.ReadString(Models.Metadata.Machine.SampleOfKey),
Description = item.ReadString(Models.Metadata.Machine.DescriptionKey),
Year = item.ReadString(Models.Metadata.Machine.YearKey),
Manufacturer = item.ReadString(Models.Metadata.Machine.ManufacturerKey),
History = item.ReadString(Models.Metadata.Machine.HistoryKey),
};
var biosSets = item.Read<Models.Internal.BiosSet[]>(Models.Internal.Machine.BiosSetKey);
var biosSets = item.Read<Models.Metadata.BiosSet[]>(Models.Metadata.Machine.BiosSetKey);
if (biosSets != null && biosSets.Any())
{
machine.BiosSet = biosSets
@@ -114,7 +114,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms != null && roms.Any())
{
machine.Rom = roms
@@ -123,7 +123,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var disks = item.Read<Models.Internal.Disk[]>(Models.Internal.Machine.DiskKey);
var disks = item.Read<Models.Metadata.Disk[]>(Models.Metadata.Machine.DiskKey);
if (disks != null && disks.Any())
{
machine.Disk = disks
@@ -132,7 +132,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var deviceRefs = item.Read<Models.Internal.DeviceRef[]>(Models.Internal.Machine.DeviceRefKey);
var deviceRefs = item.Read<Models.Metadata.DeviceRef[]>(Models.Metadata.Machine.DeviceRefKey);
if (deviceRefs != null && deviceRefs.Any())
{
machine.DeviceRef = deviceRefs
@@ -141,7 +141,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var samples = item.Read<Models.Internal.Sample[]>(Models.Internal.Machine.SampleKey);
var samples = item.Read<Models.Metadata.Sample[]>(Models.Metadata.Machine.SampleKey);
if (samples != null && samples.Any())
{
machine.Sample = samples
@@ -150,7 +150,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var chips = item.Read<Models.Internal.Chip[]>(Models.Internal.Machine.ChipKey);
var chips = item.Read<Models.Metadata.Chip[]>(Models.Metadata.Machine.ChipKey);
if (chips != null && chips.Any())
{
machine.Chip = chips
@@ -159,7 +159,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var displays = item.Read<Models.Internal.Display[]>(Models.Internal.Machine.DisplayKey);
var displays = item.Read<Models.Metadata.Display[]>(Models.Metadata.Machine.DisplayKey);
if (displays != null && displays.Any())
{
machine.Display = displays
@@ -168,7 +168,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var videos = item.Read<Models.Internal.Video[]>(Models.Internal.Machine.VideoKey);
var videos = item.Read<Models.Metadata.Video[]>(Models.Metadata.Machine.VideoKey);
if (videos != null && videos.Any())
{
machine.Video = videos
@@ -177,15 +177,15 @@ namespace SabreTools.Serialization
.ToArray();
}
var sound = item.Read<Models.Internal.Sound>(Models.Internal.Machine.SoundKey);
var sound = item.Read<Models.Metadata.Sound>(Models.Metadata.Machine.SoundKey);
if (sound != null)
machine.Sound = ConvertFromInternalModel(sound);
var input = item.Read<Models.Internal.Input>(Models.Internal.Machine.InputKey);
var input = item.Read<Models.Metadata.Input>(Models.Metadata.Machine.InputKey);
if (input != null)
machine.Input = ConvertFromInternalModel(input);
var dipSwitches = item.Read<Models.Internal.DipSwitch[]>(Models.Internal.Machine.DipSwitchKey);
var dipSwitches = item.Read<Models.Metadata.DipSwitch[]>(Models.Metadata.Machine.DipSwitchKey);
if (dipSwitches != null && dipSwitches.Any())
{
machine.DipSwitch = dipSwitches
@@ -194,7 +194,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var configurations = item.Read<Models.Internal.Configuration[]>(Models.Internal.Machine.ConfigurationKey);
var configurations = item.Read<Models.Metadata.Configuration[]>(Models.Metadata.Machine.ConfigurationKey);
if (configurations != null && configurations.Any())
{
machine.Configuration = configurations
@@ -203,7 +203,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var ports = item.Read<Models.Internal.Port[]>(Models.Internal.Machine.PortKey);
var ports = item.Read<Models.Metadata.Port[]>(Models.Metadata.Machine.PortKey);
if (ports != null && ports.Any())
{
machine.Port = ports
@@ -212,7 +212,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var adjusters = item.Read<Models.Internal.Adjuster[]>(Models.Internal.Machine.AdjusterKey);
var adjusters = item.Read<Models.Metadata.Adjuster[]>(Models.Metadata.Machine.AdjusterKey);
if (adjusters != null && adjusters.Any())
{
machine.Adjuster = adjusters
@@ -221,11 +221,11 @@ namespace SabreTools.Serialization
.ToArray();
}
var driver = item.Read<Models.Internal.Driver>(Models.Internal.Machine.DriverKey);
var driver = item.Read<Models.Metadata.Driver>(Models.Metadata.Machine.DriverKey);
if (driver != null)
machine.Driver = ConvertFromInternalModel(driver);
var features = item.Read<Models.Internal.Feature[]>(Models.Internal.Machine.FeatureKey);
var features = item.Read<Models.Metadata.Feature[]>(Models.Metadata.Machine.FeatureKey);
if (features != null && features.Any())
{
machine.Feature = features
@@ -234,7 +234,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var devices = item.Read<Models.Internal.Device[]>(Models.Internal.Machine.DeviceKey);
var devices = item.Read<Models.Metadata.Device[]>(Models.Metadata.Machine.DeviceKey);
if (devices != null && devices.Any())
{
machine.Device = devices
@@ -243,7 +243,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var slots = item.Read<Models.Internal.Slot[]>(Models.Internal.Machine.SlotKey);
var slots = item.Read<Models.Metadata.Slot[]>(Models.Metadata.Machine.SlotKey);
if (slots != null && slots.Any())
{
machine.Slot = slots
@@ -252,7 +252,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var softwareLists = item.Read<Models.Internal.SoftwareList[]>(Models.Internal.Machine.SoftwareListKey);
var softwareLists = item.Read<Models.Metadata.SoftwareList[]>(Models.Metadata.Machine.SoftwareListKey);
if (softwareLists != null && softwareLists.Any())
{
machine.SoftwareList = softwareLists
@@ -261,7 +261,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var ramOptions = item.Read<Models.Internal.RamOption[]>(Models.Internal.Machine.RamOptionKey);
var ramOptions = item.Read<Models.Metadata.RamOption[]>(Models.Metadata.Machine.RamOptionKey);
if (ramOptions != null && ramOptions.Any())
{
machine.RamOption = ramOptions
@@ -274,17 +274,17 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Adjuster"/> to <cref="Models.Listxml.Adjuster"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Adjuster"/> to <cref="Models.Listxml.Adjuster"/>
/// </summary>
private static Adjuster ConvertFromInternalModel(Models.Internal.Adjuster item)
private static Adjuster ConvertFromInternalModel(Models.Metadata.Adjuster item)
{
var adjuster = new Adjuster
{
Name = item.ReadString(Models.Internal.Adjuster.NameKey),
Default = item.ReadString(Models.Internal.Adjuster.DefaultKey),
Name = item.ReadString(Models.Metadata.Adjuster.NameKey),
Default = item.ReadString(Models.Metadata.Adjuster.DefaultKey),
};
var condition = item.Read<Models.Internal.Condition>(Models.Internal.Adjuster.ConditionKey);
var condition = item.Read<Models.Metadata.Condition>(Models.Metadata.Adjuster.ConditionKey);
if (condition != null)
adjuster.Condition = ConvertFromInternalModel(condition);
@@ -292,79 +292,79 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Analog"/> to <cref="Models.Listxml.Analog"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Analog"/> to <cref="Models.Listxml.Analog"/>
/// </summary>
private static Analog ConvertFromInternalModel(Models.Internal.Analog item)
private static Analog ConvertFromInternalModel(Models.Metadata.Analog item)
{
var analog = new Analog
{
Mask = item.ReadString(Models.Internal.Analog.MaskKey),
Mask = item.ReadString(Models.Metadata.Analog.MaskKey),
};
return analog;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.BiosSet"/> to <cref="Models.Listxml.BiosSet"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.BiosSet"/> to <cref="Models.Listxml.BiosSet"/>
/// </summary>
private static BiosSet ConvertFromInternalModel(Models.Internal.BiosSet item)
private static BiosSet ConvertFromInternalModel(Models.Metadata.BiosSet item)
{
var biosset = new BiosSet
{
Name = item.ReadString(Models.Internal.BiosSet.NameKey),
Description = item.ReadString(Models.Internal.BiosSet.DescriptionKey),
Default = item.ReadString(Models.Internal.BiosSet.DefaultKey),
Name = item.ReadString(Models.Metadata.BiosSet.NameKey),
Description = item.ReadString(Models.Metadata.BiosSet.DescriptionKey),
Default = item.ReadString(Models.Metadata.BiosSet.DefaultKey),
};
return biosset;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Chip"/> to <cref="Models.Listxml.Chip"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Chip"/> to <cref="Models.Listxml.Chip"/>
/// </summary>
private static Chip ConvertFromInternalModel(Models.Internal.Chip item)
private static Chip ConvertFromInternalModel(Models.Metadata.Chip item)
{
var chip = new Chip
{
Name = item.ReadString(Models.Internal.Chip.NameKey),
Tag = item.ReadString(Models.Internal.Chip.TagKey),
Type = item.ReadString(Models.Internal.Chip.TypeKey),
SoundOnly = item.ReadString(Models.Internal.Chip.SoundOnlyKey),
Clock = item.ReadString(Models.Internal.Chip.ClockKey),
Name = item.ReadString(Models.Metadata.Chip.NameKey),
Tag = item.ReadString(Models.Metadata.Chip.TagKey),
Type = item.ReadString(Models.Metadata.Chip.TypeKey),
SoundOnly = item.ReadString(Models.Metadata.Chip.SoundOnlyKey),
Clock = item.ReadString(Models.Metadata.Chip.ClockKey),
};
return chip;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Condition"/> to <cref="Models.Listxml.Condition"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Condition"/> to <cref="Models.Listxml.Condition"/>
/// </summary>
private static Condition ConvertFromInternalModel(Models.Internal.Condition item)
private static Condition ConvertFromInternalModel(Models.Metadata.Condition item)
{
var condition = new Condition
{
Tag = item.ReadString(Models.Internal.Condition.TagKey),
Mask = item.ReadString(Models.Internal.Condition.MaskKey),
Relation = item.ReadString(Models.Internal.Condition.RelationKey),
Value = item.ReadString(Models.Internal.Condition.ValueKey),
Tag = item.ReadString(Models.Metadata.Condition.TagKey),
Mask = item.ReadString(Models.Metadata.Condition.MaskKey),
Relation = item.ReadString(Models.Metadata.Condition.RelationKey),
Value = item.ReadString(Models.Metadata.Condition.ValueKey),
};
return condition;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Configuration"/> to <cref="Models.Listxml.Configuration"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Configuration"/> to <cref="Models.Listxml.Configuration"/>
/// </summary>
private static Configuration ConvertFromInternalModel(Models.Internal.Configuration item)
private static Configuration ConvertFromInternalModel(Models.Metadata.Configuration item)
{
var configuration = new Configuration
{
Name = item.ReadString(Models.Internal.Configuration.NameKey),
Tag = item.ReadString(Models.Internal.Configuration.TagKey),
Mask = item.ReadString(Models.Internal.Configuration.MaskKey),
Name = item.ReadString(Models.Metadata.Configuration.NameKey),
Tag = item.ReadString(Models.Metadata.Configuration.TagKey),
Mask = item.ReadString(Models.Metadata.Configuration.MaskKey),
};
var condition = item.Read<Models.Internal.Condition>(Models.Internal.Configuration.ConditionKey);
var condition = item.Read<Models.Metadata.Condition>(Models.Metadata.Configuration.ConditionKey);
if (condition != null)
configuration.Condition = ConvertFromInternalModel(condition);
var confLocations = item.Read<Models.Internal.ConfLocation[]>(Models.Internal.Configuration.ConfLocationKey);
var confLocations = item.Read<Models.Metadata.ConfLocation[]>(Models.Metadata.Configuration.ConfLocationKey);
if (confLocations != null && confLocations.Any())
{
configuration.ConfLocation = confLocations
@@ -373,7 +373,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var confSettings = item.Read<Models.Internal.ConfSetting[]>(Models.Internal.Configuration.ConfSettingKey);
var confSettings = item.Read<Models.Metadata.ConfSetting[]>(Models.Metadata.Configuration.ConfSettingKey);
if (confSettings != null && confSettings.Any())
{
configuration.ConfSetting = confSettings
@@ -386,32 +386,32 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.ConfLocation"/> to <cref="Models.Listxml.ConfLocation"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.ConfLocation"/> to <cref="Models.Listxml.ConfLocation"/>
/// </summary>
private static ConfLocation ConvertFromInternalModel(Models.Internal.ConfLocation item)
private static ConfLocation ConvertFromInternalModel(Models.Metadata.ConfLocation item)
{
var confLocation = new ConfLocation
{
Name = item.ReadString(Models.Internal.ConfLocation.NameKey),
Number = item.ReadString(Models.Internal.ConfLocation.NumberKey),
Inverted = item.ReadString(Models.Internal.ConfLocation.InvertedKey),
Name = item.ReadString(Models.Metadata.ConfLocation.NameKey),
Number = item.ReadString(Models.Metadata.ConfLocation.NumberKey),
Inverted = item.ReadString(Models.Metadata.ConfLocation.InvertedKey),
};
return confLocation;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.ConfSetting"/> to <cref="Models.Listxml.ConfSetting"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.ConfSetting"/> to <cref="Models.Listxml.ConfSetting"/>
/// </summary>
private static ConfSetting ConvertFromInternalModel(Models.Internal.ConfSetting item)
private static ConfSetting ConvertFromInternalModel(Models.Metadata.ConfSetting item)
{
var confSetting = new ConfSetting
{
Name = item.ReadString(Models.Internal.ConfSetting.NameKey),
Value = item.ReadString(Models.Internal.ConfSetting.ValueKey),
Default = item.ReadString(Models.Internal.ConfSetting.DefaultKey),
Name = item.ReadString(Models.Metadata.ConfSetting.NameKey),
Value = item.ReadString(Models.Metadata.ConfSetting.ValueKey),
Default = item.ReadString(Models.Metadata.ConfSetting.DefaultKey),
};
var condition = item.Read<Models.Internal.Condition>(Models.Internal.ConfSetting.ConditionKey);
var condition = item.Read<Models.Metadata.Condition>(Models.Metadata.ConfSetting.ConditionKey);
if (condition != null)
confSetting.Condition = ConvertFromInternalModel(condition);
@@ -419,47 +419,47 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Control"/> to <cref="Models.Listxml.Control"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Control"/> to <cref="Models.Listxml.Control"/>
/// </summary>
private static Control ConvertFromInternalModel(Models.Internal.Control item)
private static Control ConvertFromInternalModel(Models.Metadata.Control item)
{
var control = new Control
{
Type = item.ReadString(Models.Internal.Control.TypeKey),
Player = item.ReadString(Models.Internal.Control.PlayerKey),
Buttons = item.ReadString(Models.Internal.Control.ButtonsKey),
ReqButtons = item.ReadString(Models.Internal.Control.ReqButtonsKey),
Minimum = item.ReadString(Models.Internal.Control.MinimumKey),
Maximum = item.ReadString(Models.Internal.Control.MaximumKey),
Sensitivity = item.ReadString(Models.Internal.Control.SensitivityKey),
KeyDelta = item.ReadString(Models.Internal.Control.KeyDeltaKey),
Reverse = item.ReadString(Models.Internal.Control.ReverseKey),
Ways = item.ReadString(Models.Internal.Control.WaysKey),
Ways2 = item.ReadString(Models.Internal.Control.Ways2Key),
Ways3 = item.ReadString(Models.Internal.Control.Ways3Key),
Type = item.ReadString(Models.Metadata.Control.TypeKey),
Player = item.ReadString(Models.Metadata.Control.PlayerKey),
Buttons = item.ReadString(Models.Metadata.Control.ButtonsKey),
ReqButtons = item.ReadString(Models.Metadata.Control.ReqButtonsKey),
Minimum = item.ReadString(Models.Metadata.Control.MinimumKey),
Maximum = item.ReadString(Models.Metadata.Control.MaximumKey),
Sensitivity = item.ReadString(Models.Metadata.Control.SensitivityKey),
KeyDelta = item.ReadString(Models.Metadata.Control.KeyDeltaKey),
Reverse = item.ReadString(Models.Metadata.Control.ReverseKey),
Ways = item.ReadString(Models.Metadata.Control.WaysKey),
Ways2 = item.ReadString(Models.Metadata.Control.Ways2Key),
Ways3 = item.ReadString(Models.Metadata.Control.Ways3Key),
};
return control;
}
/// <summary>
/// Convert from <cref="Models.Internal.Models.Internal.Device"/> to <cref="Models.Listxml.Device"/>
/// Convert from <cref="Models.Metadata.Models.Metadata.Device"/> to <cref="Models.Listxml.Device"/>
/// </summary>
private static Device ConvertFromInternalModel(Models.Internal.Device item)
private static Device ConvertFromInternalModel(Models.Metadata.Device item)
{
var device = new Device
{
Type = item.ReadString(Models.Internal.Device.TypeKey),
Tag = item.ReadString(Models.Internal.Device.TagKey),
FixedImage = item.ReadString(Models.Internal.Device.FixedImageKey),
Mandatory = item.ReadString(Models.Internal.Device.MandatoryKey),
Interface = item.ReadString(Models.Internal.Device.InterfaceKey),
Type = item.ReadString(Models.Metadata.Device.TypeKey),
Tag = item.ReadString(Models.Metadata.Device.TagKey),
FixedImage = item.ReadString(Models.Metadata.Device.FixedImageKey),
Mandatory = item.ReadString(Models.Metadata.Device.MandatoryKey),
Interface = item.ReadString(Models.Metadata.Device.InterfaceKey),
};
var instance = item.Read<Models.Internal.Instance>(Models.Internal.Device.InstanceKey);
var instance = item.Read<Models.Metadata.Instance>(Models.Metadata.Device.InstanceKey);
if (instance != null)
device.Instance = ConvertFromInternalModel(instance);
var extensions = item.Read<Models.Internal.Extension[]>(Models.Internal.Device.ExtensionKey);
var extensions = item.Read<Models.Metadata.Extension[]>(Models.Metadata.Device.ExtensionKey);
if (extensions != null && extensions.Any())
{
device.Extension = extensions
@@ -472,48 +472,48 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.DeviceRef"/> to <cref="Models.Listxml.DeviceRef"/>
/// Convert from <cref="Models.Metadata.DeviceRef"/> to <cref="Models.Listxml.DeviceRef"/>
/// </summary>
private static DeviceRef ConvertFromInternalModel(Models.Internal.DeviceRef item)
private static DeviceRef ConvertFromInternalModel(Models.Metadata.DeviceRef item)
{
var deviceRef = new DeviceRef
{
Name = item.ReadString(Models.Internal.DeviceRef.NameKey),
Name = item.ReadString(Models.Metadata.DeviceRef.NameKey),
};
return deviceRef;
}
/// <summary>
/// Convert from <cref="Models.Internal.DipLocation"/> to <cref="Models.Listxml.DipLocation"/>
/// Convert from <cref="Models.Metadata.DipLocation"/> to <cref="Models.Listxml.DipLocation"/>
/// </summary>
private static DipLocation ConvertFromInternalModel(Models.Internal.DipLocation item)
private static DipLocation ConvertFromInternalModel(Models.Metadata.DipLocation item)
{
var dipLocation = new DipLocation
{
Name = item.ReadString(Models.Internal.DipLocation.NameKey),
Number = item.ReadString(Models.Internal.DipLocation.NumberKey),
Inverted = item.ReadString(Models.Internal.DipLocation.InvertedKey),
Name = item.ReadString(Models.Metadata.DipLocation.NameKey),
Number = item.ReadString(Models.Metadata.DipLocation.NumberKey),
Inverted = item.ReadString(Models.Metadata.DipLocation.InvertedKey),
};
return dipLocation;
}
/// <summary>
/// Convert from <cref="Models.Internal.DipSwitch"/> to <cref="Models.Listxml.DipSwitch"/>
/// Convert from <cref="Models.Metadata.DipSwitch"/> to <cref="Models.Listxml.DipSwitch"/>
/// </summary>
private static DipSwitch ConvertFromInternalModel(Models.Internal.DipSwitch item)
private static DipSwitch ConvertFromInternalModel(Models.Metadata.DipSwitch item)
{
var dipSwitch = new DipSwitch
{
Name = item.ReadString(Models.Internal.DipSwitch.NameKey),
Tag = item.ReadString(Models.Internal.DipSwitch.TagKey),
Mask = item.ReadString(Models.Internal.DipSwitch.MaskKey),
Name = item.ReadString(Models.Metadata.DipSwitch.NameKey),
Tag = item.ReadString(Models.Metadata.DipSwitch.TagKey),
Mask = item.ReadString(Models.Metadata.DipSwitch.MaskKey),
};
var condition = item.Read<Models.Internal.Condition>(Models.Internal.DipSwitch.ConditionKey);
var condition = item.Read<Models.Metadata.Condition>(Models.Metadata.DipSwitch.ConditionKey);
if (condition != null)
dipSwitch.Condition = ConvertFromInternalModel(condition);
var dipLocations = item.Read<Models.Internal.DipLocation[]>(Models.Internal.DipSwitch.DipLocationKey);
var dipLocations = item.Read<Models.Metadata.DipLocation[]>(Models.Metadata.DipSwitch.DipLocationKey);
if (dipLocations != null && dipLocations.Any())
{
dipSwitch.DipLocation = dipLocations
@@ -522,7 +522,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var dipValues = item.Read<Models.Internal.DipValue[]>(Models.Internal.DipSwitch.DipValueKey);
var dipValues = item.Read<Models.Metadata.DipValue[]>(Models.Metadata.DipSwitch.DipValueKey);
if (dipValues != null && dipValues.Any())
{
dipSwitch.DipValue = dipValues
@@ -535,18 +535,18 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.DipValue"/> to <cref="Models.Listxml.DipValue"/>
/// Convert from <cref="Models.Metadata.DipValue"/> to <cref="Models.Listxml.DipValue"/>
/// </summary>
private static DipValue ConvertFromInternalModel(Models.Internal.DipValue item)
private static DipValue ConvertFromInternalModel(Models.Metadata.DipValue item)
{
var dipValue = new DipValue
{
Name = item.ReadString(Models.Internal.DipValue.NameKey),
Value = item.ReadString(Models.Internal.DipValue.ValueKey),
Default = item.ReadString(Models.Internal.DipValue.DefaultKey),
Name = item.ReadString(Models.Metadata.DipValue.NameKey),
Value = item.ReadString(Models.Metadata.DipValue.ValueKey),
Default = item.ReadString(Models.Metadata.DipValue.DefaultKey),
};
var condition = item.Read<Models.Internal.Condition>(Models.Internal.DipValue.ConditionKey);
var condition = item.Read<Models.Metadata.Condition>(Models.Metadata.DipValue.ConditionKey);
if (condition != null)
dipValue.Condition = ConvertFromInternalModel(condition);
@@ -554,114 +554,114 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Disk"/> to <cref="Models.Listxml.Disk"/>
/// Convert from <cref="Models.Metadata.Disk"/> to <cref="Models.Listxml.Disk"/>
/// </summary>
private static Disk ConvertFromInternalModel(Models.Internal.Disk item)
private static Disk ConvertFromInternalModel(Models.Metadata.Disk item)
{
var disk = new Disk
{
Name = item.ReadString(Models.Internal.Disk.NameKey),
MD5 = item.ReadString(Models.Internal.Disk.MD5Key),
SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key),
Merge = item.ReadString(Models.Internal.Disk.MergeKey),
Region = item.ReadString(Models.Internal.Disk.RegionKey),
Index = item.ReadString(Models.Internal.Disk.IndexKey),
Writable = item.ReadString(Models.Internal.Disk.WritableKey),
Status = item.ReadString(Models.Internal.Disk.StatusKey),
Optional = item.ReadString(Models.Internal.Disk.OptionalKey),
Name = item.ReadString(Models.Metadata.Disk.NameKey),
MD5 = item.ReadString(Models.Metadata.Disk.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Disk.SHA1Key),
Merge = item.ReadString(Models.Metadata.Disk.MergeKey),
Region = item.ReadString(Models.Metadata.Disk.RegionKey),
Index = item.ReadString(Models.Metadata.Disk.IndexKey),
Writable = item.ReadString(Models.Metadata.Disk.WritableKey),
Status = item.ReadString(Models.Metadata.Disk.StatusKey),
Optional = item.ReadString(Models.Metadata.Disk.OptionalKey),
};
return disk;
}
/// <summary>
/// Convert from <cref="Models.Internal.Display"/> to <cref="Models.Listxml.Display"/>
/// Convert from <cref="Models.Metadata.Display"/> to <cref="Models.Listxml.Display"/>
/// </summary>
private static Display ConvertFromInternalModel(Models.Internal.Display item)
private static Display ConvertFromInternalModel(Models.Metadata.Display item)
{
var display = new Display
{
Tag = item.ReadString(Models.Internal.Display.TagKey),
Type = item.ReadString(Models.Internal.Display.TypeKey),
Rotate = item.ReadString(Models.Internal.Display.RotateKey),
FlipX = item.ReadString(Models.Internal.Display.FlipXKey),
Width = item.ReadString(Models.Internal.Display.WidthKey),
Height = item.ReadString(Models.Internal.Display.HeightKey),
Refresh = item.ReadString(Models.Internal.Display.RefreshKey),
PixClock = item.ReadString(Models.Internal.Display.PixClockKey),
HTotal = item.ReadString(Models.Internal.Display.HTotalKey),
HBEnd = item.ReadString(Models.Internal.Display.HBEndKey),
HBStart = item.ReadString(Models.Internal.Display.HBStartKey),
VTotal = item.ReadString(Models.Internal.Display.VTotalKey),
VBEnd = item.ReadString(Models.Internal.Display.VBEndKey),
VBStart = item.ReadString(Models.Internal.Display.VBStartKey),
Tag = item.ReadString(Models.Metadata.Display.TagKey),
Type = item.ReadString(Models.Metadata.Display.TypeKey),
Rotate = item.ReadString(Models.Metadata.Display.RotateKey),
FlipX = item.ReadString(Models.Metadata.Display.FlipXKey),
Width = item.ReadString(Models.Metadata.Display.WidthKey),
Height = item.ReadString(Models.Metadata.Display.HeightKey),
Refresh = item.ReadString(Models.Metadata.Display.RefreshKey),
PixClock = item.ReadString(Models.Metadata.Display.PixClockKey),
HTotal = item.ReadString(Models.Metadata.Display.HTotalKey),
HBEnd = item.ReadString(Models.Metadata.Display.HBEndKey),
HBStart = item.ReadString(Models.Metadata.Display.HBStartKey),
VTotal = item.ReadString(Models.Metadata.Display.VTotalKey),
VBEnd = item.ReadString(Models.Metadata.Display.VBEndKey),
VBStart = item.ReadString(Models.Metadata.Display.VBStartKey),
};
return display;
}
/// <summary>
/// Convert from <cref="Models.Internal.Driver"/> to <cref="Models.Listxml.Driver"/>
/// Convert from <cref="Models.Metadata.Driver"/> to <cref="Models.Listxml.Driver"/>
/// </summary>
private static Driver ConvertFromInternalModel(Models.Internal.Driver item)
private static Driver ConvertFromInternalModel(Models.Metadata.Driver item)
{
var driver = new Driver
{
Status = item.ReadString(Models.Internal.Driver.StatusKey),
Color = item.ReadString(Models.Internal.Driver.ColorKey),
Sound = item.ReadString(Models.Internal.Driver.SoundKey),
PaletteSize = item.ReadString(Models.Internal.Driver.PaletteSizeKey),
Emulation = item.ReadString(Models.Internal.Driver.EmulationKey),
Cocktail = item.ReadString(Models.Internal.Driver.CocktailKey),
SaveState = item.ReadString(Models.Internal.Driver.SaveStateKey),
RequiresArtwork = item.ReadString(Models.Internal.Driver.RequiresArtworkKey),
Unofficial = item.ReadString(Models.Internal.Driver.UnofficialKey),
NoSoundHardware = item.ReadString(Models.Internal.Driver.NoSoundHardwareKey),
Incomplete = item.ReadString(Models.Internal.Driver.IncompleteKey),
Status = item.ReadString(Models.Metadata.Driver.StatusKey),
Color = item.ReadString(Models.Metadata.Driver.ColorKey),
Sound = item.ReadString(Models.Metadata.Driver.SoundKey),
PaletteSize = item.ReadString(Models.Metadata.Driver.PaletteSizeKey),
Emulation = item.ReadString(Models.Metadata.Driver.EmulationKey),
Cocktail = item.ReadString(Models.Metadata.Driver.CocktailKey),
SaveState = item.ReadString(Models.Metadata.Driver.SaveStateKey),
RequiresArtwork = item.ReadString(Models.Metadata.Driver.RequiresArtworkKey),
Unofficial = item.ReadString(Models.Metadata.Driver.UnofficialKey),
NoSoundHardware = item.ReadString(Models.Metadata.Driver.NoSoundHardwareKey),
Incomplete = item.ReadString(Models.Metadata.Driver.IncompleteKey),
};
return driver;
}
/// <summary>
/// Convert from <cref="Models.Internal.Extension"/> to <cref="Models.Listxml.Extension"/>
/// Convert from <cref="Models.Metadata.Extension"/> to <cref="Models.Listxml.Extension"/>
/// </summary>
private static Extension ConvertFromInternalModel(Models.Internal.Extension item)
private static Extension ConvertFromInternalModel(Models.Metadata.Extension item)
{
var extension = new Extension
{
Name = item.ReadString(Models.Internal.Extension.NameKey),
Name = item.ReadString(Models.Metadata.Extension.NameKey),
};
return extension;
}
/// <summary>
/// Convert from <cref="Models.Internal.Feature"/> to <cref="Models.Listxml.Feature"/>
/// Convert from <cref="Models.Metadata.Feature"/> to <cref="Models.Listxml.Feature"/>
/// </summary>
private static Feature ConvertFromInternalModel(Models.Internal.Feature item)
private static Feature ConvertFromInternalModel(Models.Metadata.Feature item)
{
var feature = new Feature
{
Type = item.ReadString(Models.Internal.Feature.TypeKey),
Status = item.ReadString(Models.Internal.Feature.StatusKey),
Overall = item.ReadString(Models.Internal.Feature.OverallKey),
Type = item.ReadString(Models.Metadata.Feature.TypeKey),
Status = item.ReadString(Models.Metadata.Feature.StatusKey),
Overall = item.ReadString(Models.Metadata.Feature.OverallKey),
};
return feature;
}
/// <summary>
/// Convert from <cref="Models.Internal.Input"/> to <cref="Models.Listxml.Input"/>
/// Convert from <cref="Models.Metadata.Input"/> to <cref="Models.Listxml.Input"/>
/// </summary>
private static Input ConvertFromInternalModel(Models.Internal.Input item)
private static Input ConvertFromInternalModel(Models.Metadata.Input item)
{
var input = new Input
{
Service = item.ReadString(Models.Internal.Input.ServiceKey),
Tilt = item.ReadString(Models.Internal.Input.TiltKey),
Players = item.ReadString(Models.Internal.Input.PlayersKey),
ControlAttr = item.ReadString(Models.Internal.Input.ControlKey),
Buttons = item.ReadString(Models.Internal.Input.ButtonsKey),
Coins = item.ReadString(Models.Internal.Input.CoinsKey),
Service = item.ReadString(Models.Metadata.Input.ServiceKey),
Tilt = item.ReadString(Models.Metadata.Input.TiltKey),
Players = item.ReadString(Models.Metadata.Input.PlayersKey),
ControlAttr = item.ReadString(Models.Metadata.Input.ControlKey),
Buttons = item.ReadString(Models.Metadata.Input.ButtonsKey),
Coins = item.ReadString(Models.Metadata.Input.CoinsKey),
};
var controls = item.Read<Models.Internal.Control[]>(Models.Internal.Input.ControlKey);
var controls = item.Read<Models.Metadata.Control[]>(Models.Metadata.Input.ControlKey);
if (controls != null && controls.Any())
{
input.Control = controls
@@ -674,29 +674,29 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Instance"/> to <cref="Models.Listxml.Instance"/>
/// Convert from <cref="Models.Metadata.Instance"/> to <cref="Models.Listxml.Instance"/>
/// </summary>
private static Instance ConvertFromInternalModel(Models.Internal.Instance item)
private static Instance ConvertFromInternalModel(Models.Metadata.Instance item)
{
var instance = new Instance
{
Name = item.ReadString(Models.Internal.Instance.NameKey),
BriefName = item.ReadString(Models.Internal.Instance.BriefNameKey),
Name = item.ReadString(Models.Metadata.Instance.NameKey),
BriefName = item.ReadString(Models.Metadata.Instance.BriefNameKey),
};
return instance;
}
/// <summary>
/// Convert from <cref="Models.Internal.Port"/> to <cref="Models.Listxml.Port"/>
/// Convert from <cref="Models.Metadata.Port"/> to <cref="Models.Listxml.Port"/>
/// </summary>
private static Port ConvertFromInternalModel(Models.Internal.Port item)
private static Port ConvertFromInternalModel(Models.Metadata.Port item)
{
var port = new Port
{
Tag = item.ReadString(Models.Internal.Port.TagKey),
Tag = item.ReadString(Models.Metadata.Port.TagKey),
};
var analogs = item.Read<Models.Internal.Analog[]>(Models.Internal.Port.AnalogKey);
var analogs = item.Read<Models.Metadata.Analog[]>(Models.Metadata.Port.AnalogKey);
if (analogs != null && analogs.Any())
{
port.Analog = analogs
@@ -709,65 +709,65 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.RamOption"/> to <cref="Models.Listxml.RamOption"/>
/// Convert from <cref="Models.Metadata.RamOption"/> to <cref="Models.Listxml.RamOption"/>
/// </summary>
private static RamOption ConvertFromInternalModel(Models.Internal.RamOption item)
private static RamOption ConvertFromInternalModel(Models.Metadata.RamOption item)
{
var ramOption = new RamOption
{
Name = item.ReadString(Models.Internal.RamOption.NameKey),
Default = item.ReadString(Models.Internal.RamOption.DefaultKey),
Content = item.ReadString(Models.Internal.RamOption.ContentKey),
Name = item.ReadString(Models.Metadata.RamOption.NameKey),
Default = item.ReadString(Models.Metadata.RamOption.DefaultKey),
Content = item.ReadString(Models.Metadata.RamOption.ContentKey),
};
return ramOption;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Listxml.Rom"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Listxml.Rom"/>
/// </summary>
private static Rom ConvertFromInternalModel(Models.Internal.Rom item)
private static Rom ConvertFromInternalModel(Models.Metadata.Rom item)
{
var rom = new Rom
{
Name = item.ReadString(Models.Internal.Rom.NameKey),
Bios = item.ReadString(Models.Internal.Rom.BiosKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
CRC = item.ReadString(Models.Internal.Rom.CRCKey),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
Merge = item.ReadString(Models.Internal.Rom.MergeKey),
Region = item.ReadString(Models.Internal.Rom.RegionKey),
Offset = item.ReadString(Models.Internal.Rom.OffsetKey),
Status = item.ReadString(Models.Internal.Rom.StatusKey),
Optional = item.ReadString(Models.Internal.Rom.OptionalKey),
Dispose = item.ReadString(Models.Internal.Rom.DisposeKey),
SoundOnly = item.ReadString(Models.Internal.Rom.SoundOnlyKey),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
Bios = item.ReadString(Models.Metadata.Rom.BiosKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
Merge = item.ReadString(Models.Metadata.Rom.MergeKey),
Region = item.ReadString(Models.Metadata.Rom.RegionKey),
Offset = item.ReadString(Models.Metadata.Rom.OffsetKey),
Status = item.ReadString(Models.Metadata.Rom.StatusKey),
Optional = item.ReadString(Models.Metadata.Rom.OptionalKey),
Dispose = item.ReadString(Models.Metadata.Rom.DisposeKey),
SoundOnly = item.ReadString(Models.Metadata.Rom.SoundOnlyKey),
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Internal.Sample"/> to <cref="Models.Listxml.Sample"/>
/// Convert from <cref="Models.Metadata.Sample"/> to <cref="Models.Listxml.Sample"/>
/// </summary>
private static Sample ConvertFromInternalModel(Models.Internal.Sample item)
private static Sample ConvertFromInternalModel(Models.Metadata.Sample item)
{
var sample = new Sample
{
Name = item.ReadString(Models.Internal.Sample.NameKey),
Name = item.ReadString(Models.Metadata.Sample.NameKey),
};
return sample;
}
/// <summary>
/// Convert from <cref="Models.Internal.Slot"/> to <cref="Models.Listxml.Slot"/>
/// Convert from <cref="Models.Metadata.Slot"/> to <cref="Models.Listxml.Slot"/>
/// </summary>
private static Slot ConvertFromInternalModel(Models.Internal.Slot item)
private static Slot ConvertFromInternalModel(Models.Metadata.Slot item)
{
var slot = new Slot
{
Name = item.ReadString(Models.Internal.Slot.NameKey),
Name = item.ReadString(Models.Metadata.Slot.NameKey),
};
var slotOptions = item.Read<Models.Internal.SlotOption[]>(Models.Internal.Slot.SlotOptionKey);
var slotOptions = item.Read<Models.Metadata.SlotOption[]>(Models.Metadata.Slot.SlotOptionKey);
if (slotOptions != null && slotOptions.Any())
{
slot.SlotOption = slotOptions
@@ -780,60 +780,60 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.SlotOption"/> to <cref="Models.Listxml.SlotOption"/>
/// Convert from <cref="Models.Metadata.SlotOption"/> to <cref="Models.Listxml.SlotOption"/>
/// </summary>
private static SlotOption ConvertFromInternalModel(Models.Internal.SlotOption item)
private static SlotOption ConvertFromInternalModel(Models.Metadata.SlotOption item)
{
var slotOption = new SlotOption
{
Name = item.ReadString(Models.Internal.SlotOption.NameKey),
DevName = item.ReadString(Models.Internal.SlotOption.DevNameKey),
Default = item.ReadString(Models.Internal.SlotOption.DefaultKey),
Name = item.ReadString(Models.Metadata.SlotOption.NameKey),
DevName = item.ReadString(Models.Metadata.SlotOption.DevNameKey),
Default = item.ReadString(Models.Metadata.SlotOption.DefaultKey),
};
return slotOption;
}
/// <summary>
/// Convert from <cref="Models.Internal.SoftwareList"/> to <cref="Models.Listxml.SoftwareList"/>
/// Convert from <cref="Models.Metadata.SoftwareList"/> to <cref="Models.Listxml.SoftwareList"/>
/// </summary>
private static SoftwareList ConvertFromInternalModel(Models.Internal.SoftwareList item)
private static SoftwareList ConvertFromInternalModel(Models.Metadata.SoftwareList item)
{
var softwareList = new SoftwareList
{
Tag = item.ReadString(Models.Internal.SoftwareList.TagKey),
Name = item.ReadString(Models.Internal.SoftwareList.NameKey),
Status = item.ReadString(Models.Internal.SoftwareList.StatusKey),
Filter = item.ReadString(Models.Internal.SoftwareList.FilterKey),
Tag = item.ReadString(Models.Metadata.SoftwareList.TagKey),
Name = item.ReadString(Models.Metadata.SoftwareList.NameKey),
Status = item.ReadString(Models.Metadata.SoftwareList.StatusKey),
Filter = item.ReadString(Models.Metadata.SoftwareList.FilterKey),
};
return softwareList;
}
/// <summary>
/// Convert from <cref="Models.Internal.Sound"/> to <cref="Models.Listxml.Sound"/>
/// Convert from <cref="Models.Metadata.Sound"/> to <cref="Models.Listxml.Sound"/>
/// </summary>
private static Sound ConvertFromInternalModel(Models.Internal.Sound item)
private static Sound ConvertFromInternalModel(Models.Metadata.Sound item)
{
var sound = new Sound
{
Channels = item.ReadString(Models.Internal.Sound.ChannelsKey),
Channels = item.ReadString(Models.Metadata.Sound.ChannelsKey),
};
return sound;
}
/// <summary>
/// Convert from <cref="Models.Internal.Video"/> to <cref="Models.Listxml.Video"/>
/// Convert from <cref="Models.Metadata.Video"/> to <cref="Models.Listxml.Video"/>
/// </summary>
private static Video ConvertFromInternalModel(Models.Internal.Video item)
private static Video ConvertFromInternalModel(Models.Metadata.Video item)
{
var video = new Video
{
Screen = item.ReadString(Models.Internal.Video.ScreenKey),
Orientation = item.ReadString(Models.Internal.Video.OrientationKey),
Width = item.ReadString(Models.Internal.Video.WidthKey),
Height = item.ReadString(Models.Internal.Video.HeightKey),
AspectX = item.ReadString(Models.Internal.Video.AspectXKey),
AspectY = item.ReadString(Models.Internal.Video.AspectYKey),
Refresh = item.ReadString(Models.Internal.Video.RefreshKey),
Screen = item.ReadString(Models.Metadata.Video.ScreenKey),
Orientation = item.ReadString(Models.Metadata.Video.OrientationKey),
Width = item.ReadString(Models.Metadata.Video.WidthKey),
Height = item.ReadString(Models.Metadata.Video.HeightKey),
AspectX = item.ReadString(Models.Metadata.Video.AspectXKey),
AspectY = item.ReadString(Models.Metadata.Video.AspectYKey),
Refresh = item.ReadString(Models.Metadata.Video.RefreshKey),
};
return video;
}

File diff suppressed because it is too large Load Diff

View File

@@ -11,26 +11,26 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.Logiqx.Datafile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.Logiqx.Datafile"/>
/// </summary>
public static Datafile? ConvertFromInternalModel(Models.Internal.MetadataFile? item, bool game = false)
public static Datafile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item, bool game = false)
{
if (item == null)
return null;
var datafile = new Datafile
{
Build = item.ReadString(Models.Internal.Header.BuildKey),
Debug = item.ReadString(Models.Internal.Header.DebugKey),
SchemaLocation = item.ReadString(Models.Internal.Header.SchemaLocationKey),
Build = item.ReadString(Models.Metadata.Header.BuildKey),
Debug = item.ReadString(Models.Metadata.Header.DebugKey),
SchemaLocation = item.ReadString(Models.Metadata.Header.SchemaLocationKey),
};
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
if (header != null)
datafile.Header = ConvertHeaderFromInternalModel(header);
// TODO: Handle Dir items - Currently need to be generated from the machines
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
datafile.Game = machines
@@ -43,58 +43,58 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.Logiqx.Header"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.Logiqx.Header"/>
/// </summary>
private static Header ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static Header ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var header = new Header
{
Id = item.ReadString(Models.Internal.Header.IdKey),
Name = item.ReadString(Models.Internal.Header.NameKey),
Description = item.ReadString(Models.Internal.Header.DescriptionKey),
RootDir = item.ReadString(Models.Internal.Header.RootDirKey),
Category = item.ReadString(Models.Internal.Header.CategoryKey),
Version = item.ReadString(Models.Internal.Header.VersionKey),
Date = item.ReadString(Models.Internal.Header.DateKey),
Author = item.ReadString(Models.Internal.Header.AuthorKey),
Email = item.ReadString(Models.Internal.Header.EmailKey),
Homepage = item.ReadString(Models.Internal.Header.HomepageKey),
Url = item.ReadString(Models.Internal.Header.UrlKey),
Comment = item.ReadString(Models.Internal.Header.CommentKey),
Type = item.ReadString(Models.Internal.Header.TypeKey),
Id = item.ReadString(Models.Metadata.Header.IdKey),
Name = item.ReadString(Models.Metadata.Header.NameKey),
Description = item.ReadString(Models.Metadata.Header.DescriptionKey),
RootDir = item.ReadString(Models.Metadata.Header.RootDirKey),
Category = item.ReadString(Models.Metadata.Header.CategoryKey),
Version = item.ReadString(Models.Metadata.Header.VersionKey),
Date = item.ReadString(Models.Metadata.Header.DateKey),
Author = item.ReadString(Models.Metadata.Header.AuthorKey),
Email = item.ReadString(Models.Metadata.Header.EmailKey),
Homepage = item.ReadString(Models.Metadata.Header.HomepageKey),
Url = item.ReadString(Models.Metadata.Header.UrlKey),
Comment = item.ReadString(Models.Metadata.Header.CommentKey),
Type = item.ReadString(Models.Metadata.Header.TypeKey),
};
if (item.ContainsKey(Models.Internal.Header.HeaderKey)
|| item.ContainsKey(Models.Internal.Header.ForceMergingKey)
|| item.ContainsKey(Models.Internal.Header.ForceNodumpKey)
|| item.ContainsKey(Models.Internal.Header.ForcePackingKey))
if (item.ContainsKey(Models.Metadata.Header.HeaderKey)
|| item.ContainsKey(Models.Metadata.Header.ForceMergingKey)
|| item.ContainsKey(Models.Metadata.Header.ForceNodumpKey)
|| item.ContainsKey(Models.Metadata.Header.ForcePackingKey))
{
header.ClrMamePro = new Models.Logiqx.ClrMamePro
{
Header = item.ReadString(Models.Internal.Header.HeaderKey),
ForceMerging = item.ReadString(Models.Internal.Header.ForceMergingKey),
ForceNodump = item.ReadString(Models.Internal.Header.ForceNodumpKey),
ForcePacking = item.ReadString(Models.Internal.Header.ForcePackingKey),
Header = item.ReadString(Models.Metadata.Header.HeaderKey),
ForceMerging = item.ReadString(Models.Metadata.Header.ForceMergingKey),
ForceNodump = item.ReadString(Models.Metadata.Header.ForceNodumpKey),
ForcePacking = item.ReadString(Models.Metadata.Header.ForcePackingKey),
};
}
if (item.ContainsKey(Models.Internal.Header.PluginKey)
|| item.ContainsKey(Models.Internal.Header.RomModeKey)
|| item.ContainsKey(Models.Internal.Header.BiosModeKey)
|| item.ContainsKey(Models.Internal.Header.SampleModeKey)
|| item.ContainsKey(Models.Internal.Header.LockRomModeKey)
|| item.ContainsKey(Models.Internal.Header.LockBiosModeKey)
|| item.ContainsKey(Models.Internal.Header.LockSampleModeKey))
if (item.ContainsKey(Models.Metadata.Header.PluginKey)
|| item.ContainsKey(Models.Metadata.Header.RomModeKey)
|| item.ContainsKey(Models.Metadata.Header.BiosModeKey)
|| item.ContainsKey(Models.Metadata.Header.SampleModeKey)
|| item.ContainsKey(Models.Metadata.Header.LockRomModeKey)
|| item.ContainsKey(Models.Metadata.Header.LockBiosModeKey)
|| item.ContainsKey(Models.Metadata.Header.LockSampleModeKey))
{
header.RomCenter = new Models.Logiqx.RomCenter
{
Plugin = item.ReadString(Models.Internal.Header.PluginKey),
RomMode = item.ReadString(Models.Internal.Header.RomModeKey),
BiosMode = item.ReadString(Models.Internal.Header.BiosModeKey),
SampleMode = item.ReadString(Models.Internal.Header.SampleModeKey),
LockRomMode = item.ReadString(Models.Internal.Header.LockRomModeKey),
LockBiosMode = item.ReadString(Models.Internal.Header.LockBiosModeKey),
LockSampleMode = item.ReadString(Models.Internal.Header.LockSampleModeKey),
Plugin = item.ReadString(Models.Metadata.Header.PluginKey),
RomMode = item.ReadString(Models.Metadata.Header.RomModeKey),
BiosMode = item.ReadString(Models.Metadata.Header.BiosModeKey),
SampleMode = item.ReadString(Models.Metadata.Header.SampleModeKey),
LockRomMode = item.ReadString(Models.Metadata.Header.LockRomModeKey),
LockBiosMode = item.ReadString(Models.Metadata.Header.LockBiosModeKey),
LockSampleMode = item.ReadString(Models.Metadata.Header.LockSampleModeKey),
};
}
@@ -102,37 +102,37 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to <cref="Models.Logiqx.GameBase"/>
/// Convert from <cref="Models.Metadata.Machine"/> to <cref="Models.Logiqx.GameBase"/>
/// </summary>
private static GameBase ConvertMachineFromInternalModel(Models.Internal.Machine item, bool game = false)
private static GameBase ConvertMachineFromInternalModel(Models.Metadata.Machine item, bool game = false)
{
GameBase gameBase = game ? new Game() : new Machine();
gameBase.Name = item.ReadString(Models.Internal.Machine.NameKey);
gameBase.SourceFile = item.ReadString(Models.Internal.Machine.SourceFileKey);
gameBase.IsBios = item.ReadString(Models.Internal.Machine.IsBiosKey);
gameBase.IsDevice = item.ReadString(Models.Internal.Machine.IsDeviceKey);
gameBase.IsMechanical = item.ReadString(Models.Internal.Machine.IsMechanicalKey);
gameBase.CloneOf = item.ReadString(Models.Internal.Machine.CloneOfKey);
gameBase.RomOf = item.ReadString(Models.Internal.Machine.RomOfKey);
gameBase.SampleOf = item.ReadString(Models.Internal.Machine.SampleOfKey);
gameBase.Board = item.ReadString(Models.Internal.Machine.BoardKey);
gameBase.RebuildTo = item.ReadString(Models.Internal.Machine.RebuildToKey);
gameBase.Id = item.ReadString(Models.Internal.Machine.IdKey);
gameBase.CloneOfId = item.ReadString(Models.Internal.Machine.CloneOfIdKey);
gameBase.Runnable = item.ReadString(Models.Internal.Machine.RunnableKey);
gameBase.Comment = item.ReadStringArray(Models.Internal.Machine.CommentKey);
gameBase.Description = item.ReadString(Models.Internal.Machine.DescriptionKey);
gameBase.Year = item.ReadString(Models.Internal.Machine.YearKey);
gameBase.Manufacturer = item.ReadString(Models.Internal.Machine.ManufacturerKey);
gameBase.Publisher = item.ReadString(Models.Internal.Machine.PublisherKey);
gameBase.Category = item.ReadStringArray(Models.Internal.Machine.CategoryKey);
gameBase.Name = item.ReadString(Models.Metadata.Machine.NameKey);
gameBase.SourceFile = item.ReadString(Models.Metadata.Machine.SourceFileKey);
gameBase.IsBios = item.ReadString(Models.Metadata.Machine.IsBiosKey);
gameBase.IsDevice = item.ReadString(Models.Metadata.Machine.IsDeviceKey);
gameBase.IsMechanical = item.ReadString(Models.Metadata.Machine.IsMechanicalKey);
gameBase.CloneOf = item.ReadString(Models.Metadata.Machine.CloneOfKey);
gameBase.RomOf = item.ReadString(Models.Metadata.Machine.RomOfKey);
gameBase.SampleOf = item.ReadString(Models.Metadata.Machine.SampleOfKey);
gameBase.Board = item.ReadString(Models.Metadata.Machine.BoardKey);
gameBase.RebuildTo = item.ReadString(Models.Metadata.Machine.RebuildToKey);
gameBase.Id = item.ReadString(Models.Metadata.Machine.IdKey);
gameBase.CloneOfId = item.ReadString(Models.Metadata.Machine.CloneOfIdKey);
gameBase.Runnable = item.ReadString(Models.Metadata.Machine.RunnableKey);
gameBase.Comment = item.ReadStringArray(Models.Metadata.Machine.CommentKey);
gameBase.Description = item.ReadString(Models.Metadata.Machine.DescriptionKey);
gameBase.Year = item.ReadString(Models.Metadata.Machine.YearKey);
gameBase.Manufacturer = item.ReadString(Models.Metadata.Machine.ManufacturerKey);
gameBase.Publisher = item.ReadString(Models.Metadata.Machine.PublisherKey);
gameBase.Category = item.ReadStringArray(Models.Metadata.Machine.CategoryKey);
var trurip = item.Read<Trurip>(Models.Internal.Machine.TruripKey);
var trurip = item.Read<Trurip>(Models.Metadata.Machine.TruripKey);
if (trurip != null)
gameBase.Trurip = trurip;
var releases = item.Read<Models.Internal.Release[]>(Models.Internal.Machine.ReleaseKey);
var releases = item.Read<Models.Metadata.Release[]>(Models.Metadata.Machine.ReleaseKey);
if (releases != null && releases.Any())
{
gameBase.Release = releases
@@ -141,7 +141,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var biosSets = item.Read<Models.Internal.BiosSet[]>(Models.Internal.Machine.BiosSetKey);
var biosSets = item.Read<Models.Metadata.BiosSet[]>(Models.Metadata.Machine.BiosSetKey);
if (biosSets != null && biosSets.Any())
{
gameBase.BiosSet = biosSets
@@ -150,7 +150,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms != null && roms.Any())
{
gameBase.Rom = roms
@@ -159,7 +159,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var disks = item.Read<Models.Internal.Disk[]>(Models.Internal.Machine.DiskKey);
var disks = item.Read<Models.Metadata.Disk[]>(Models.Metadata.Machine.DiskKey);
if (disks != null && disks.Any())
{
gameBase.Disk = disks
@@ -168,7 +168,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var medias = item.Read<Models.Internal.Media[]>(Models.Internal.Machine.MediaKey);
var medias = item.Read<Models.Metadata.Media[]>(Models.Metadata.Machine.MediaKey);
if (medias != null && medias.Any())
{
gameBase.Media = medias
@@ -177,7 +177,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var deviceRefs = item.Read<Models.Internal.DeviceRef[]>(Models.Internal.Machine.DeviceRefKey);
var deviceRefs = item.Read<Models.Metadata.DeviceRef[]>(Models.Metadata.Machine.DeviceRefKey);
if (deviceRefs != null && deviceRefs.Any())
{
gameBase.DeviceRef = deviceRefs
@@ -186,7 +186,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var samples = item.Read<Models.Internal.Sample[]>(Models.Internal.Machine.SampleKey);
var samples = item.Read<Models.Metadata.Sample[]>(Models.Metadata.Machine.SampleKey);
if (samples != null && samples.Any())
{
gameBase.Sample = samples
@@ -195,7 +195,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var archives = item.Read<Models.Internal.Archive[]>(Models.Internal.Machine.ArchiveKey);
var archives = item.Read<Models.Metadata.Archive[]>(Models.Metadata.Machine.ArchiveKey);
if (archives != null && archives.Any())
{
gameBase.Archive = archives
@@ -204,11 +204,11 @@ namespace SabreTools.Serialization
.ToArray();
}
var driver = item.Read<Models.Internal.Driver>(Models.Internal.Machine.DriverKey);
var driver = item.Read<Models.Metadata.Driver>(Models.Metadata.Machine.DriverKey);
if (driver != null)
gameBase.Driver = ConvertFromInternalModel(driver);
var softwareLists = item.Read<Models.Internal.SoftwareList[]>(Models.Internal.Machine.SoftwareListKey);
var softwareLists = item.Read<Models.Metadata.SoftwareList[]>(Models.Metadata.Machine.SoftwareListKey);
if (softwareLists != null && softwareLists.Any())
{
gameBase.SoftwareList = softwareLists
@@ -221,163 +221,163 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Archive"/> to <cref="Models.Logiqx.Archive"/>
/// Convert from <cref="Models.Metadata.Archive"/> to <cref="Models.Logiqx.Archive"/>
/// </summary>
private static Archive ConvertFromInternalModel(Models.Internal.Archive item)
private static Archive ConvertFromInternalModel(Models.Metadata.Archive item)
{
var archive = new Archive
{
Name = item.ReadString(Models.Internal.Archive.NameKey),
Name = item.ReadString(Models.Metadata.Archive.NameKey),
};
return archive;
}
/// <summary>
/// Convert from <cref="Models.Internal.BiosSet"/> to <cref="Models.Logiqx.BiosSet"/>
/// Convert from <cref="Models.Metadata.BiosSet"/> to <cref="Models.Logiqx.BiosSet"/>
/// </summary>
private static BiosSet ConvertFromInternalModel(Models.Internal.BiosSet item)
private static BiosSet ConvertFromInternalModel(Models.Metadata.BiosSet item)
{
var biosset = new BiosSet
{
Name = item.ReadString(Models.Internal.BiosSet.NameKey),
Description = item.ReadString(Models.Internal.BiosSet.DescriptionKey),
Default = item.ReadString(Models.Internal.BiosSet.DefaultKey),
Name = item.ReadString(Models.Metadata.BiosSet.NameKey),
Description = item.ReadString(Models.Metadata.BiosSet.DescriptionKey),
Default = item.ReadString(Models.Metadata.BiosSet.DefaultKey),
};
return biosset;
}
/// <summary>
/// Convert from <cref="Models.Internal.DeviceRef"/> to <cref="Models.Logiqx.DeviceRef"/>
/// Convert from <cref="Models.Metadata.DeviceRef"/> to <cref="Models.Logiqx.DeviceRef"/>
/// </summary>
private static DeviceRef ConvertFromInternalModel(Models.Internal.DeviceRef item)
private static DeviceRef ConvertFromInternalModel(Models.Metadata.DeviceRef item)
{
var deviceRef = new DeviceRef
{
Name = item.ReadString(Models.Internal.DipSwitch.NameKey),
Name = item.ReadString(Models.Metadata.DipSwitch.NameKey),
};
return deviceRef;
}
/// <summary>
/// Convert from <cref="Models.Internal.Disk"/> to <cref="Models.Logiqx.Disk"/>
/// Convert from <cref="Models.Metadata.Disk"/> to <cref="Models.Logiqx.Disk"/>
/// </summary>
private static Disk ConvertFromInternalModel(Models.Internal.Disk item)
private static Disk ConvertFromInternalModel(Models.Metadata.Disk item)
{
var disk = new Disk
{
Name = item.ReadString(Models.Internal.Disk.NameKey),
MD5 = item.ReadString(Models.Internal.Disk.MD5Key),
SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key),
Merge = item.ReadString(Models.Internal.Disk.MergeKey),
Status = item.ReadString(Models.Internal.Disk.StatusKey),
Region = item.ReadString(Models.Internal.Disk.RegionKey),
Name = item.ReadString(Models.Metadata.Disk.NameKey),
MD5 = item.ReadString(Models.Metadata.Disk.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Disk.SHA1Key),
Merge = item.ReadString(Models.Metadata.Disk.MergeKey),
Status = item.ReadString(Models.Metadata.Disk.StatusKey),
Region = item.ReadString(Models.Metadata.Disk.RegionKey),
};
return disk;
}
/// <summary>
/// Convert from <cref="Models.Internal.Driver"/> to <cref="Models.Logiqx.Driver"/>
/// Convert from <cref="Models.Metadata.Driver"/> to <cref="Models.Logiqx.Driver"/>
/// </summary>
private static Driver ConvertFromInternalModel(Models.Internal.Driver item)
private static Driver ConvertFromInternalModel(Models.Metadata.Driver item)
{
var driver = new Driver
{
Status = item.ReadString(Models.Internal.Driver.StatusKey),
Emulation = item.ReadString(Models.Internal.Driver.EmulationKey),
Cocktail = item.ReadString(Models.Internal.Driver.CocktailKey),
SaveState = item.ReadString(Models.Internal.Driver.SaveStateKey),
RequiresArtwork = item.ReadString(Models.Internal.Driver.RequiresArtworkKey),
Unofficial = item.ReadString(Models.Internal.Driver.UnofficialKey),
NoSoundHardware = item.ReadString(Models.Internal.Driver.NoSoundHardwareKey),
Incomplete = item.ReadString(Models.Internal.Driver.IncompleteKey),
Status = item.ReadString(Models.Metadata.Driver.StatusKey),
Emulation = item.ReadString(Models.Metadata.Driver.EmulationKey),
Cocktail = item.ReadString(Models.Metadata.Driver.CocktailKey),
SaveState = item.ReadString(Models.Metadata.Driver.SaveStateKey),
RequiresArtwork = item.ReadString(Models.Metadata.Driver.RequiresArtworkKey),
Unofficial = item.ReadString(Models.Metadata.Driver.UnofficialKey),
NoSoundHardware = item.ReadString(Models.Metadata.Driver.NoSoundHardwareKey),
Incomplete = item.ReadString(Models.Metadata.Driver.IncompleteKey),
};
return driver;
}
/// <summary>
/// Convert from <cref="Models.Internal.Media"/> to <cref="Models.Logiqx.Media"/>
/// Convert from <cref="Models.Metadata.Media"/> to <cref="Models.Logiqx.Media"/>
/// </summary>
private static Media ConvertFromInternalModel(Models.Internal.Media item)
private static Media ConvertFromInternalModel(Models.Metadata.Media item)
{
var media = new Media
{
Name = item.ReadString(Models.Internal.Media.NameKey),
MD5 = item.ReadString(Models.Internal.Media.MD5Key),
SHA1 = item.ReadString(Models.Internal.Media.SHA1Key),
SHA256 = item.ReadString(Models.Internal.Media.SHA256Key),
SpamSum = item.ReadString(Models.Internal.Media.SpamSumKey),
Name = item.ReadString(Models.Metadata.Media.NameKey),
MD5 = item.ReadString(Models.Metadata.Media.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Media.SHA1Key),
SHA256 = item.ReadString(Models.Metadata.Media.SHA256Key),
SpamSum = item.ReadString(Models.Metadata.Media.SpamSumKey),
};
return media;
}
/// <summary>
/// Convert from <cref="Models.Internal.Release"/> to <cref="Models.Logiqx.Release"/>
/// Convert from <cref="Models.Metadata.Release"/> to <cref="Models.Logiqx.Release"/>
/// </summary>
private static Release ConvertFromInternalModel(Models.Internal.Release item)
private static Release ConvertFromInternalModel(Models.Metadata.Release item)
{
var release = new Release
{
Name = item.ReadString(Models.Internal.Release.NameKey),
Region = item.ReadString(Models.Internal.Release.RegionKey),
Language = item.ReadString(Models.Internal.Release.LanguageKey),
Date = item.ReadString(Models.Internal.Release.DateKey),
Default = item.ReadString(Models.Internal.Release.DefaultKey),
Name = item.ReadString(Models.Metadata.Release.NameKey),
Region = item.ReadString(Models.Metadata.Release.RegionKey),
Language = item.ReadString(Models.Metadata.Release.LanguageKey),
Date = item.ReadString(Models.Metadata.Release.DateKey),
Default = item.ReadString(Models.Metadata.Release.DefaultKey),
};
return release;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.Logiqx.Rom"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.Logiqx.Rom"/>
/// </summary>
private static Rom ConvertFromInternalModel(Models.Internal.Rom item)
private static Rom ConvertFromInternalModel(Models.Metadata.Rom item)
{
var rom = new Rom
{
Name = item.ReadString(Models.Internal.Rom.NameKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
CRC = item.ReadString(Models.Internal.Rom.CRCKey),
MD5 = item.ReadString(Models.Internal.Rom.MD5Key),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
SHA256 = item.ReadString(Models.Internal.Rom.SHA256Key),
SHA384 = item.ReadString(Models.Internal.Rom.SHA384Key),
SHA512 = item.ReadString(Models.Internal.Rom.SHA512Key),
SpamSum = item.ReadString(Models.Internal.Rom.SpamSumKey),
xxHash364 = item.ReadString(Models.Internal.Rom.xxHash364Key),
xxHash3128 = item.ReadString(Models.Internal.Rom.xxHash3128Key),
Merge = item.ReadString(Models.Internal.Rom.MergeKey),
Status = item.ReadString(Models.Internal.Rom.StatusKey),
Serial = item.ReadString(Models.Internal.Rom.SerialKey),
Header = item.ReadString(Models.Internal.Rom.HeaderKey),
Date = item.ReadString(Models.Internal.Rom.DateKey),
Inverted = item.ReadString(Models.Internal.Rom.InvertedKey),
MIA = item.ReadString(Models.Internal.Rom.MIAKey),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
MD5 = item.ReadString(Models.Metadata.Rom.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
SHA256 = item.ReadString(Models.Metadata.Rom.SHA256Key),
SHA384 = item.ReadString(Models.Metadata.Rom.SHA384Key),
SHA512 = item.ReadString(Models.Metadata.Rom.SHA512Key),
SpamSum = item.ReadString(Models.Metadata.Rom.SpamSumKey),
xxHash364 = item.ReadString(Models.Metadata.Rom.xxHash364Key),
xxHash3128 = item.ReadString(Models.Metadata.Rom.xxHash3128Key),
Merge = item.ReadString(Models.Metadata.Rom.MergeKey),
Status = item.ReadString(Models.Metadata.Rom.StatusKey),
Serial = item.ReadString(Models.Metadata.Rom.SerialKey),
Header = item.ReadString(Models.Metadata.Rom.HeaderKey),
Date = item.ReadString(Models.Metadata.Rom.DateKey),
Inverted = item.ReadString(Models.Metadata.Rom.InvertedKey),
MIA = item.ReadString(Models.Metadata.Rom.MIAKey),
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Internal.Sample"/> to <cref="Models.Logiqx.Sample"/>
/// Convert from <cref="Models.Metadata.Sample"/> to <cref="Models.Logiqx.Sample"/>
/// </summary>
private static Sample ConvertFromInternalModel(Models.Internal.Sample item)
private static Sample ConvertFromInternalModel(Models.Metadata.Sample item)
{
var sample = new Sample
{
Name = item.ReadString(Models.Internal.Sample.NameKey),
Name = item.ReadString(Models.Metadata.Sample.NameKey),
};
return sample;
}
/// <summary>
/// Convert from <cref="Models.Internal.SoftwareList"/> to <cref="Models.Logiqx.SoftwareList"/>
/// Convert from <cref="Models.Metadata.SoftwareList"/> to <cref="Models.Logiqx.SoftwareList"/>
/// </summary>
private static SoftwareList ConvertFromInternalModel(Models.Internal.SoftwareList item)
private static SoftwareList ConvertFromInternalModel(Models.Metadata.SoftwareList item)
{
var softwareList = new SoftwareList
{
Tag = item.ReadString(Models.Internal.SoftwareList.TagKey),
Name = item.ReadString(Models.Internal.SoftwareList.NameKey),
Status = item.ReadString(Models.Internal.SoftwareList.StatusKey),
Filter = item.ReadString(Models.Internal.SoftwareList.FilterKey),
Tag = item.ReadString(Models.Metadata.SoftwareList.TagKey),
Name = item.ReadString(Models.Metadata.SoftwareList.NameKey),
Status = item.ReadString(Models.Metadata.SoftwareList.StatusKey),
Filter = item.ReadString(Models.Metadata.SoftwareList.FilterKey),
};
return softwareList;
}

View File

@@ -22,19 +22,19 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Logiqx.Datafile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.Logiqx.Datafile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(Datafile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(Datafile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
var machines = new List<Models.Internal.Machine>();
var machines = new List<Models.Metadata.Machine>();
if (item.Game != null && item.Game.Any())
{
@@ -51,308 +51,308 @@ namespace SabreTools.Serialization
}
if (machines.Any())
metadataFile[Models.Internal.MetadataFile.MachineKey] = machines.ToArray();
metadataFile[Models.Metadata.MetadataFile.MachineKey] = machines.ToArray();
return metadataFile;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Datafile"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.Logiqx.Datafile"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(Datafile item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(Datafile item)
{
var header = item.Header != null ? ConvertHeaderToInternalModel(item.Header) : new Models.Internal.Header();
var header = item.Header != null ? ConvertHeaderToInternalModel(item.Header) : new Models.Metadata.Header();
header[Models.Internal.Header.BuildKey] = item.Build;
header[Models.Internal.Header.DebugKey] = item.Debug;
header[Models.Internal.Header.SchemaLocationKey] = item.SchemaLocation;
header[Models.Metadata.Header.BuildKey] = item.Build;
header[Models.Metadata.Header.DebugKey] = item.Debug;
header[Models.Metadata.Header.SchemaLocationKey] = item.SchemaLocation;
return header;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Header"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.Logiqx.Header"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(Header item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(Header item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.IdKey] = item.Id,
[Models.Internal.Header.NameKey] = item.Name,
[Models.Internal.Header.DescriptionKey] = item.Description,
[Models.Internal.Header.RootDirKey] = item.RootDir,
[Models.Internal.Header.CategoryKey] = item.Category,
[Models.Internal.Header.VersionKey] = item.Version,
[Models.Internal.Header.DateKey] = item.Date,
[Models.Internal.Header.AuthorKey] = item.Author,
[Models.Internal.Header.EmailKey] = item.Email,
[Models.Internal.Header.HomepageKey] = item.Homepage,
[Models.Internal.Header.UrlKey] = item.Url,
[Models.Internal.Header.CommentKey] = item.Comment,
[Models.Internal.Header.TypeKey] = item.Type,
[Models.Metadata.Header.IdKey] = item.Id,
[Models.Metadata.Header.NameKey] = item.Name,
[Models.Metadata.Header.DescriptionKey] = item.Description,
[Models.Metadata.Header.RootDirKey] = item.RootDir,
[Models.Metadata.Header.CategoryKey] = item.Category,
[Models.Metadata.Header.VersionKey] = item.Version,
[Models.Metadata.Header.DateKey] = item.Date,
[Models.Metadata.Header.AuthorKey] = item.Author,
[Models.Metadata.Header.EmailKey] = item.Email,
[Models.Metadata.Header.HomepageKey] = item.Homepage,
[Models.Metadata.Header.UrlKey] = item.Url,
[Models.Metadata.Header.CommentKey] = item.Comment,
[Models.Metadata.Header.TypeKey] = item.Type,
};
if (item.ClrMamePro != null)
{
header[Models.Internal.Header.HeaderKey] = item.ClrMamePro.Header;
header[Models.Internal.Header.ForceMergingKey] = item.ClrMamePro.ForceMerging;
header[Models.Internal.Header.ForceNodumpKey] = item.ClrMamePro.ForceNodump;
header[Models.Internal.Header.ForcePackingKey] = item.ClrMamePro.ForcePacking;
header[Models.Metadata.Header.HeaderKey] = item.ClrMamePro.Header;
header[Models.Metadata.Header.ForceMergingKey] = item.ClrMamePro.ForceMerging;
header[Models.Metadata.Header.ForceNodumpKey] = item.ClrMamePro.ForceNodump;
header[Models.Metadata.Header.ForcePackingKey] = item.ClrMamePro.ForcePacking;
}
if (item.RomCenter != null)
{
header[Models.Internal.Header.PluginKey] = item.RomCenter.Plugin;
header[Models.Internal.Header.RomModeKey] = item.RomCenter.RomMode;
header[Models.Internal.Header.BiosModeKey] = item.RomCenter.BiosMode;
header[Models.Internal.Header.SampleModeKey] = item.RomCenter.SampleMode;
header[Models.Internal.Header.LockRomModeKey] = item.RomCenter.LockRomMode;
header[Models.Internal.Header.LockBiosModeKey] = item.RomCenter.LockBiosMode;
header[Models.Internal.Header.LockSampleModeKey] = item.RomCenter.LockSampleMode;
header[Models.Metadata.Header.PluginKey] = item.RomCenter.Plugin;
header[Models.Metadata.Header.RomModeKey] = item.RomCenter.RomMode;
header[Models.Metadata.Header.BiosModeKey] = item.RomCenter.BiosMode;
header[Models.Metadata.Header.SampleModeKey] = item.RomCenter.SampleMode;
header[Models.Metadata.Header.LockRomModeKey] = item.RomCenter.LockRomMode;
header[Models.Metadata.Header.LockBiosModeKey] = item.RomCenter.LockBiosMode;
header[Models.Metadata.Header.LockSampleModeKey] = item.RomCenter.LockSampleMode;
}
return header;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Dir"/> to an array of <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.Logiqx.Dir"/> to an array of <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine[] ConvertDirToInternalModel(Dir item)
private static Models.Metadata.Machine[] ConvertDirToInternalModel(Dir item)
{
if (item.Game == null || !item.Game.Any())
return Array.Empty<Models.Internal.Machine>();
return Array.Empty<Models.Metadata.Machine>();
return item.Game
.Where(g => g != null)
.Select(game =>
{
var machine = ConvertMachineToInternalModel(game);
machine[Models.Internal.Machine.DirNameKey] = item.Name;
machine[Models.Metadata.Machine.DirNameKey] = item.Name;
return machine;
})
.ToArray();
}
/// <summary>
/// Convert from <cref="Models.Logiqx.GameBase"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.Logiqx.GameBase"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(GameBase item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(GameBase item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.NameKey] = item.Name,
[Models.Internal.Machine.SourceFileKey] = item.SourceFile,
[Models.Internal.Machine.IsBiosKey] = item.IsBios,
[Models.Internal.Machine.IsDeviceKey] = item.IsDevice,
[Models.Internal.Machine.IsMechanicalKey] = item.IsMechanical,
[Models.Internal.Machine.CloneOfKey] = item.CloneOf,
[Models.Internal.Machine.RomOfKey] = item.RomOf,
[Models.Internal.Machine.SampleOfKey] = item.SampleOf,
[Models.Internal.Machine.BoardKey] = item.Board,
[Models.Internal.Machine.RebuildToKey] = item.RebuildTo,
[Models.Internal.Machine.IdKey] = item.Id,
[Models.Internal.Machine.CloneOfIdKey] = item.CloneOfId,
[Models.Internal.Machine.RunnableKey] = item.Runnable,
[Models.Internal.Machine.CommentKey] = item.Comment,
[Models.Internal.Machine.DescriptionKey] = item.Description,
[Models.Internal.Machine.YearKey] = item.Year,
[Models.Internal.Machine.ManufacturerKey] = item.Manufacturer,
[Models.Internal.Machine.PublisherKey] = item.Publisher,
[Models.Internal.Machine.CategoryKey] = item.Category,
[Models.Internal.Machine.TruripKey] = item.Trurip,
[Models.Metadata.Machine.NameKey] = item.Name,
[Models.Metadata.Machine.SourceFileKey] = item.SourceFile,
[Models.Metadata.Machine.IsBiosKey] = item.IsBios,
[Models.Metadata.Machine.IsDeviceKey] = item.IsDevice,
[Models.Metadata.Machine.IsMechanicalKey] = item.IsMechanical,
[Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Models.Metadata.Machine.RomOfKey] = item.RomOf,
[Models.Metadata.Machine.SampleOfKey] = item.SampleOf,
[Models.Metadata.Machine.BoardKey] = item.Board,
[Models.Metadata.Machine.RebuildToKey] = item.RebuildTo,
[Models.Metadata.Machine.IdKey] = item.Id,
[Models.Metadata.Machine.CloneOfIdKey] = item.CloneOfId,
[Models.Metadata.Machine.RunnableKey] = item.Runnable,
[Models.Metadata.Machine.CommentKey] = item.Comment,
[Models.Metadata.Machine.DescriptionKey] = item.Description,
[Models.Metadata.Machine.YearKey] = item.Year,
[Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer,
[Models.Metadata.Machine.PublisherKey] = item.Publisher,
[Models.Metadata.Machine.CategoryKey] = item.Category,
[Models.Metadata.Machine.TruripKey] = item.Trurip,
};
if (item.Release != null && item.Release.Any())
machine[Models.Internal.Machine.ReleaseKey] = item.Release.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.ReleaseKey] = item.Release.Select(ConvertToInternalModel).ToArray();
if (item.BiosSet != null && item.BiosSet.Any())
machine[Models.Internal.Machine.BiosSetKey] = item.BiosSet.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.BiosSetKey] = item.BiosSet.Select(ConvertToInternalModel).ToArray();
if (item.Rom != null && item.Rom.Any())
machine[Models.Internal.Machine.RomKey] = item.Rom.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.RomKey] = item.Rom.Select(ConvertToInternalModel).ToArray();
if (item.Disk != null && item.Disk.Any())
machine[Models.Internal.Machine.DiskKey] = item.Disk.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.DiskKey] = item.Disk.Select(ConvertToInternalModel).ToArray();
if (item.Media != null && item.Media.Any())
machine[Models.Internal.Machine.MediaKey] = item.Media.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.MediaKey] = item.Media.Select(ConvertToInternalModel).ToArray();
if (item.DeviceRef != null && item.DeviceRef.Any())
machine[Models.Internal.Machine.DeviceRefKey] = item.DeviceRef.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.DeviceRefKey] = item.DeviceRef.Select(ConvertToInternalModel).ToArray();
if (item.Sample != null && item.Sample.Any())
machine[Models.Internal.Machine.SampleKey] = item.Sample.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.SampleKey] = item.Sample.Select(ConvertToInternalModel).ToArray();
if (item.Archive != null && item.Archive.Any())
machine[Models.Internal.Machine.ArchiveKey] = item.Archive.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.ArchiveKey] = item.Archive.Select(ConvertToInternalModel).ToArray();
if (item.Driver != null)
machine[Models.Internal.Machine.DriverKey] = ConvertToInternalModel(item.Driver);
machine[Models.Metadata.Machine.DriverKey] = ConvertToInternalModel(item.Driver);
if (item.SoftwareList != null && item.SoftwareList.Any())
machine[Models.Internal.Machine.SoftwareListKey] = item.SoftwareList.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.SoftwareListKey] = item.SoftwareList.Select(ConvertToInternalModel).ToArray();
return machine;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Archive"/> to <cref="Models.Internal.Archive"/>
/// Convert from <cref="Models.Logiqx.Archive"/> to <cref="Models.Metadata.Archive"/>
/// </summary>
private static Models.Internal.Archive ConvertToInternalModel(Archive item)
private static Models.Metadata.Archive ConvertToInternalModel(Archive item)
{
var archive = new Models.Internal.Archive
var archive = new Models.Metadata.Archive
{
[Models.Internal.Archive.NameKey] = item.Name,
[Models.Metadata.Archive.NameKey] = item.Name,
};
return archive;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.BiosSet"/> to <cref="Models.Internal.BiosSet"/>
/// Convert from <cref="Models.Logiqx.BiosSet"/> to <cref="Models.Metadata.BiosSet"/>
/// </summary>
private static Models.Internal.BiosSet ConvertToInternalModel(BiosSet item)
private static Models.Metadata.BiosSet ConvertToInternalModel(BiosSet item)
{
var biosset = new Models.Internal.BiosSet
var biosset = new Models.Metadata.BiosSet
{
[Models.Internal.BiosSet.NameKey] = item.Name,
[Models.Internal.BiosSet.DescriptionKey] = item.Description,
[Models.Internal.BiosSet.DefaultKey] = item.Default,
[Models.Metadata.BiosSet.NameKey] = item.Name,
[Models.Metadata.BiosSet.DescriptionKey] = item.Description,
[Models.Metadata.BiosSet.DefaultKey] = item.Default,
};
return biosset;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.DeviceRef"/> to <cref="Models.Internal.DeviceRef"/>
/// Convert from <cref="Models.Logiqx.DeviceRef"/> to <cref="Models.Metadata.DeviceRef"/>
/// </summary>
private static Models.Internal.DeviceRef ConvertToInternalModel(DeviceRef item)
private static Models.Metadata.DeviceRef ConvertToInternalModel(DeviceRef item)
{
var deviceRef = new Models.Internal.DeviceRef
var deviceRef = new Models.Metadata.DeviceRef
{
[Models.Internal.DeviceRef.NameKey] = item.Name,
[Models.Metadata.DeviceRef.NameKey] = item.Name,
};
return deviceRef;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Disk"/> to <cref="Models.Internal.Disk"/>
/// Convert from <cref="Models.Logiqx.Disk"/> to <cref="Models.Metadata.Disk"/>
/// </summary>
private static Models.Internal.Disk ConvertToInternalModel(Disk item)
private static Models.Metadata.Disk ConvertToInternalModel(Disk item)
{
var disk = new Models.Internal.Disk
var disk = new Models.Metadata.Disk
{
[Models.Internal.Disk.NameKey] = item.Name,
[Models.Internal.Disk.MD5Key] = item.MD5,
[Models.Internal.Disk.SHA1Key] = item.SHA1,
[Models.Internal.Disk.MergeKey] = item.Merge,
[Models.Internal.Disk.StatusKey] = item.Status,
[Models.Internal.Disk.RegionKey] = item.Region,
[Models.Metadata.Disk.NameKey] = item.Name,
[Models.Metadata.Disk.MD5Key] = item.MD5,
[Models.Metadata.Disk.SHA1Key] = item.SHA1,
[Models.Metadata.Disk.MergeKey] = item.Merge,
[Models.Metadata.Disk.StatusKey] = item.Status,
[Models.Metadata.Disk.RegionKey] = item.Region,
};
return disk;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Driver"/> to <cref="Models.Internal.Driver"/>
/// Convert from <cref="Models.Logiqx.Driver"/> to <cref="Models.Metadata.Driver"/>
/// </summary>
private static Models.Internal.Driver ConvertToInternalModel(Driver item)
private static Models.Metadata.Driver ConvertToInternalModel(Driver item)
{
var driver = new Models.Internal.Driver
var driver = new Models.Metadata.Driver
{
[Models.Internal.Driver.StatusKey] = item.Status,
[Models.Internal.Driver.EmulationKey] = item.Emulation,
[Models.Internal.Driver.CocktailKey] = item.Cocktail,
[Models.Internal.Driver.SaveStateKey] = item.SaveState,
[Models.Internal.Driver.RequiresArtworkKey] = item.RequiresArtwork,
[Models.Internal.Driver.UnofficialKey] = item.Unofficial,
[Models.Internal.Driver.NoSoundHardwareKey] = item.NoSoundHardware,
[Models.Internal.Driver.IncompleteKey] = item.Incomplete,
[Models.Metadata.Driver.StatusKey] = item.Status,
[Models.Metadata.Driver.EmulationKey] = item.Emulation,
[Models.Metadata.Driver.CocktailKey] = item.Cocktail,
[Models.Metadata.Driver.SaveStateKey] = item.SaveState,
[Models.Metadata.Driver.RequiresArtworkKey] = item.RequiresArtwork,
[Models.Metadata.Driver.UnofficialKey] = item.Unofficial,
[Models.Metadata.Driver.NoSoundHardwareKey] = item.NoSoundHardware,
[Models.Metadata.Driver.IncompleteKey] = item.Incomplete,
};
return driver;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Media"/> to <cref="Models.Internal.Media"/>
/// Convert from <cref="Models.Logiqx.Media"/> to <cref="Models.Metadata.Media"/>
/// </summary>
private static Models.Internal.Media ConvertToInternalModel(Media item)
private static Models.Metadata.Media ConvertToInternalModel(Media item)
{
var media = new Models.Internal.Media
var media = new Models.Metadata.Media
{
[Models.Internal.Media.NameKey] = item.Name,
[Models.Internal.Media.MD5Key] = item.MD5,
[Models.Internal.Media.SHA1Key] = item.SHA1,
[Models.Internal.Media.SHA256Key] = item.SHA256,
[Models.Internal.Media.SpamSumKey] = item.SpamSum,
[Models.Metadata.Media.NameKey] = item.Name,
[Models.Metadata.Media.MD5Key] = item.MD5,
[Models.Metadata.Media.SHA1Key] = item.SHA1,
[Models.Metadata.Media.SHA256Key] = item.SHA256,
[Models.Metadata.Media.SpamSumKey] = item.SpamSum,
};
return media;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Release"/> to <cref="Models.Internal.Release"/>
/// Convert from <cref="Models.Logiqx.Release"/> to <cref="Models.Metadata.Release"/>
/// </summary>
private static Models.Internal.Release ConvertToInternalModel(Release item)
private static Models.Metadata.Release ConvertToInternalModel(Release item)
{
var release = new Models.Internal.Release
var release = new Models.Metadata.Release
{
[Models.Internal.Release.NameKey] = item.Name,
[Models.Internal.Release.RegionKey] = item.Region,
[Models.Internal.Release.LanguageKey] = item.Language,
[Models.Internal.Release.DateKey] = item.Date,
[Models.Internal.Release.DefaultKey] = item.Default,
[Models.Metadata.Release.NameKey] = item.Name,
[Models.Metadata.Release.RegionKey] = item.Region,
[Models.Metadata.Release.LanguageKey] = item.Language,
[Models.Metadata.Release.DateKey] = item.Date,
[Models.Metadata.Release.DefaultKey] = item.Default,
};
return release;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Rom"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.Logiqx.Rom"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(Rom item)
private static Models.Metadata.Rom ConvertToInternalModel(Rom item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.Name,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Internal.Rom.CRCKey] = item.CRC,
[Models.Internal.Rom.MD5Key] = item.MD5,
[Models.Internal.Rom.SHA1Key] = item.SHA1,
[Models.Internal.Rom.SHA256Key] = item.SHA256,
[Models.Internal.Rom.SHA384Key] = item.SHA384,
[Models.Internal.Rom.SHA512Key] = item.SHA512,
[Models.Internal.Rom.SpamSumKey] = item.SpamSum,
[Models.Internal.Rom.xxHash364Key] = item.xxHash364,
[Models.Internal.Rom.xxHash3128Key] = item.xxHash3128,
[Models.Internal.Rom.MergeKey] = item.Merge,
[Models.Internal.Rom.StatusKey] = item.Status,
[Models.Internal.Rom.SerialKey] = item.Serial,
[Models.Internal.Rom.HeaderKey] = item.Header,
[Models.Internal.Rom.DateKey] = item.Date,
[Models.Internal.Rom.InvertedKey] = item.Inverted,
[Models.Internal.Rom.MIAKey] = item.MIA,
[Models.Metadata.Rom.NameKey] = item.Name,
[Models.Metadata.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.CRCKey] = item.CRC,
[Models.Metadata.Rom.MD5Key] = item.MD5,
[Models.Metadata.Rom.SHA1Key] = item.SHA1,
[Models.Metadata.Rom.SHA256Key] = item.SHA256,
[Models.Metadata.Rom.SHA384Key] = item.SHA384,
[Models.Metadata.Rom.SHA512Key] = item.SHA512,
[Models.Metadata.Rom.SpamSumKey] = item.SpamSum,
[Models.Metadata.Rom.xxHash364Key] = item.xxHash364,
[Models.Metadata.Rom.xxHash3128Key] = item.xxHash3128,
[Models.Metadata.Rom.MergeKey] = item.Merge,
[Models.Metadata.Rom.StatusKey] = item.Status,
[Models.Metadata.Rom.SerialKey] = item.Serial,
[Models.Metadata.Rom.HeaderKey] = item.Header,
[Models.Metadata.Rom.DateKey] = item.Date,
[Models.Metadata.Rom.InvertedKey] = item.Inverted,
[Models.Metadata.Rom.MIAKey] = item.MIA,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.Sample"/> to <cref="Models.Internal.Sample"/>
/// Convert from <cref="Models.Logiqx.Sample"/> to <cref="Models.Metadata.Sample"/>
/// </summary>
private static Models.Internal.Sample ConvertToInternalModel(Sample item)
private static Models.Metadata.Sample ConvertToInternalModel(Sample item)
{
var sample = new Models.Internal.Sample
var sample = new Models.Metadata.Sample
{
[Models.Internal.Sample.NameKey] = item.Name,
[Models.Metadata.Sample.NameKey] = item.Name,
};
return sample;
}
/// <summary>
/// Convert from <cref="Models.Logiqx.SoftwareList"/> to <cref="Models.Internal.SoftwareList"/>
/// Convert from <cref="Models.Logiqx.SoftwareList"/> to <cref="Models.Metadata.SoftwareList"/>
/// </summary>
private static Models.Internal.SoftwareList ConvertToInternalModel(SoftwareList item)
private static Models.Metadata.SoftwareList ConvertToInternalModel(SoftwareList item)
{
var softwareList = new Models.Internal.SoftwareList
var softwareList = new Models.Metadata.SoftwareList
{
[Models.Internal.SoftwareList.TagKey] = item.Tag,
[Models.Internal.SoftwareList.NameKey] = item.Name,
[Models.Internal.SoftwareList.StatusKey] = item.Status,
[Models.Internal.SoftwareList.FilterKey] = item.Filter,
[Models.Metadata.SoftwareList.TagKey] = item.Tag,
[Models.Metadata.SoftwareList.NameKey] = item.Name,
[Models.Metadata.SoftwareList.StatusKey] = item.Status,
[Models.Metadata.SoftwareList.FilterKey] = item.Filter,
};
return softwareList;
}

View File

@@ -11,17 +11,17 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.OfflineList.Dat"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.OfflineList.Dat"/>
/// </summary>
public static Dat? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static Dat? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var dat = header != null ? ConvertHeaderFromInternalModel(header) : new Dat();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
dat.Games = new Games
@@ -37,48 +37,48 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.OfflineList.Dat"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.OfflineList.Dat"/>
/// </summary>
private static Dat ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static Dat ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var dat = new Dat
{
NoNamespaceSchemaLocation = item.ReadString(Models.Internal.Header.SchemaLocationKey),
NoNamespaceSchemaLocation = item.ReadString(Models.Metadata.Header.SchemaLocationKey),
};
if (item.ContainsKey(Models.Internal.Header.NameKey)
|| item.ContainsKey(Models.Internal.Header.ImFolderKey)
|| item.ContainsKey(Models.Internal.Header.DatVersionKey)
|| item.ContainsKey(Models.Internal.Header.SystemKey)
|| item.ContainsKey(Models.Internal.Header.ScreenshotsWidthKey)
|| item.ContainsKey(Models.Internal.Header.ScreenshotsHeightKey)
|| item.ContainsKey(Models.Internal.Header.InfosKey)
|| item.ContainsKey(Models.Internal.Header.CanOpenKey)
|| item.ContainsKey(Models.Internal.Header.NewDatKey)
|| item.ContainsKey(Models.Internal.Header.SearchKey)
|| item.ContainsKey(Models.Internal.Header.RomTitleKey))
if (item.ContainsKey(Models.Metadata.Header.NameKey)
|| item.ContainsKey(Models.Metadata.Header.ImFolderKey)
|| item.ContainsKey(Models.Metadata.Header.DatVersionKey)
|| item.ContainsKey(Models.Metadata.Header.SystemKey)
|| item.ContainsKey(Models.Metadata.Header.ScreenshotsWidthKey)
|| item.ContainsKey(Models.Metadata.Header.ScreenshotsHeightKey)
|| item.ContainsKey(Models.Metadata.Header.InfosKey)
|| item.ContainsKey(Models.Metadata.Header.CanOpenKey)
|| item.ContainsKey(Models.Metadata.Header.NewDatKey)
|| item.ContainsKey(Models.Metadata.Header.SearchKey)
|| item.ContainsKey(Models.Metadata.Header.RomTitleKey))
{
dat.Configuration = new Configuration
{
DatName = item.ReadString(Models.Internal.Header.NameKey),
ImFolder = item.ReadString(Models.Internal.Header.ImFolderKey),
DatVersion = item.ReadString(Models.Internal.Header.DatVersionKey),
System = item.ReadString(Models.Internal.Header.SystemKey),
ScreenshotsWidth = item.ReadString(Models.Internal.Header.ScreenshotsWidthKey),
ScreenshotsHeight = item.ReadString(Models.Internal.Header.ScreenshotsHeightKey),
Infos = item.Read<Infos>(Models.Internal.Header.InfosKey),
CanOpen = item.Read<CanOpen>(Models.Internal.Header.CanOpenKey),
NewDat = item.Read<NewDat>(Models.Internal.Header.NewDatKey),
Search = item.Read<Search>(Models.Internal.Header.SearchKey),
RomTitle = item.ReadString(Models.Internal.Header.RomTitleKey),
DatName = item.ReadString(Models.Metadata.Header.NameKey),
ImFolder = item.ReadString(Models.Metadata.Header.ImFolderKey),
DatVersion = item.ReadString(Models.Metadata.Header.DatVersionKey),
System = item.ReadString(Models.Metadata.Header.SystemKey),
ScreenshotsWidth = item.ReadString(Models.Metadata.Header.ScreenshotsWidthKey),
ScreenshotsHeight = item.ReadString(Models.Metadata.Header.ScreenshotsHeightKey),
Infos = item.Read<Infos>(Models.Metadata.Header.InfosKey),
CanOpen = item.Read<CanOpen>(Models.Metadata.Header.CanOpenKey),
NewDat = item.Read<NewDat>(Models.Metadata.Header.NewDatKey),
Search = item.Read<Search>(Models.Metadata.Header.SearchKey),
RomTitle = item.ReadString(Models.Metadata.Header.RomTitleKey),
};
}
if (item.ContainsKey(Models.Internal.Header.ImagesKey))
if (item.ContainsKey(Models.Metadata.Header.ImagesKey))
{
dat.GUI = new GUI
{
Images = item.Read<Images>(Models.Internal.Header.ImagesKey),
Images = item.Read<Images>(Models.Metadata.Header.ImagesKey),
};
}
@@ -86,31 +86,31 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to <cref="Models.OfflineList.Game"/>
/// Convert from <cref="Models.Metadata.Machine"/> to <cref="Models.OfflineList.Game"/>
/// </summary>
private static Game ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Game ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var game = new Game
{
ImageNumber = item.ReadString(Models.Internal.Machine.ImageNumberKey),
ReleaseNumber = item.ReadString(Models.Internal.Machine.ReleaseNumberKey),
Title = item.ReadString(Models.Internal.Machine.NameKey),
SaveType = item.ReadString(Models.Internal.Machine.SaveTypeKey),
Publisher = item.ReadString(Models.Internal.Machine.PublisherKey),
Location = item.ReadString(Models.Internal.Machine.LocationKey),
SourceRom = item.ReadString(Models.Internal.Machine.SourceRomKey),
Language = item.ReadString(Models.Internal.Machine.LanguageKey),
Im1CRC = item.ReadString(Models.Internal.Machine.Im1CRCKey),
Im2CRC = item.ReadString(Models.Internal.Machine.Im2CRCKey),
Comment = item.ReadString(Models.Internal.Machine.CommentKey),
DuplicateID = item.ReadString(Models.Internal.Machine.DuplicateIDKey),
ImageNumber = item.ReadString(Models.Metadata.Machine.ImageNumberKey),
ReleaseNumber = item.ReadString(Models.Metadata.Machine.ReleaseNumberKey),
Title = item.ReadString(Models.Metadata.Machine.NameKey),
SaveType = item.ReadString(Models.Metadata.Machine.SaveTypeKey),
Publisher = item.ReadString(Models.Metadata.Machine.PublisherKey),
Location = item.ReadString(Models.Metadata.Machine.LocationKey),
SourceRom = item.ReadString(Models.Metadata.Machine.SourceRomKey),
Language = item.ReadString(Models.Metadata.Machine.LanguageKey),
Im1CRC = item.ReadString(Models.Metadata.Machine.Im1CRCKey),
Im2CRC = item.ReadString(Models.Metadata.Machine.Im2CRCKey),
Comment = item.ReadString(Models.Metadata.Machine.CommentKey),
DuplicateID = item.ReadString(Models.Metadata.Machine.DuplicateIDKey),
};
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms != null && roms.Any())
{
game.RomSize = roms
.Select(rom => rom.ReadString(Models.Internal.Rom.SizeKey))
.Select(rom => rom.ReadString(Models.Metadata.Rom.SizeKey))
.FirstOrDefault(s => s != null);
var romCRCs = roms
@@ -125,14 +125,14 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.OfflineList.FileRomCRC"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.OfflineList.FileRomCRC"/>
/// </summary>
private static FileRomCRC ConvertFromInternalModel(Models.Internal.Rom item)
private static FileRomCRC ConvertFromInternalModel(Models.Metadata.Rom item)
{
var fileRomCRC = new FileRomCRC
{
Extension = item.ReadString(Models.Internal.Rom.ExtensionKey),
Content = item.ReadString(Models.Internal.Rom.CRCKey),
Extension = item.ReadString(Models.Metadata.Rom.ExtensionKey),
Content = item.ReadString(Models.Metadata.Rom.CRCKey),
};
return fileRomCRC;
}

View File

@@ -11,21 +11,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.OfflineList.Dat"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.OfflineList.Dat"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(Dat? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(Dat? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
if (item?.Games?.Game != null && item.Games.Game.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Games.Game
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Games.Game
.Where(g => g != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -35,67 +35,67 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.OfflineList.Dat"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.OfflineList.Dat"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(Dat item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(Dat item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.SchemaLocationKey] = item.NoNamespaceSchemaLocation,
[Models.Metadata.Header.SchemaLocationKey] = item.NoNamespaceSchemaLocation,
};
if (item.Configuration != null)
{
header[Models.Internal.Header.NameKey] = item.Configuration.DatName;
header[Models.Internal.Header.ImFolderKey] = item.Configuration.ImFolder;
header[Models.Internal.Header.DatVersionKey] = item.Configuration.DatVersion;
header[Models.Internal.Header.SystemKey] = item.Configuration.System;
header[Models.Internal.Header.ScreenshotsWidthKey] = item.Configuration.ScreenshotsWidth;
header[Models.Internal.Header.ScreenshotsHeightKey] = item.Configuration.ScreenshotsHeight;
header[Models.Internal.Header.InfosKey] = item.Configuration.Infos;
header[Models.Internal.Header.CanOpenKey] = item.Configuration.CanOpen;
header[Models.Internal.Header.NewDatKey] = item.Configuration.NewDat;
header[Models.Internal.Header.SearchKey] = item.Configuration.Search;
header[Models.Internal.Header.RomTitleKey] = item.Configuration.RomTitle;
header[Models.Metadata.Header.NameKey] = item.Configuration.DatName;
header[Models.Metadata.Header.ImFolderKey] = item.Configuration.ImFolder;
header[Models.Metadata.Header.DatVersionKey] = item.Configuration.DatVersion;
header[Models.Metadata.Header.SystemKey] = item.Configuration.System;
header[Models.Metadata.Header.ScreenshotsWidthKey] = item.Configuration.ScreenshotsWidth;
header[Models.Metadata.Header.ScreenshotsHeightKey] = item.Configuration.ScreenshotsHeight;
header[Models.Metadata.Header.InfosKey] = item.Configuration.Infos;
header[Models.Metadata.Header.CanOpenKey] = item.Configuration.CanOpen;
header[Models.Metadata.Header.NewDatKey] = item.Configuration.NewDat;
header[Models.Metadata.Header.SearchKey] = item.Configuration.Search;
header[Models.Metadata.Header.RomTitleKey] = item.Configuration.RomTitle;
}
if (item.GUI != null)
{
header[Models.Internal.Header.ImagesKey] = item.GUI.Images;
header[Models.Metadata.Header.ImagesKey] = item.GUI.Images;
}
return header;
}
/// <summary>
/// Convert from <cref="Models.OfflineList.Game"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.OfflineList.Game"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Game item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Game item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.ImageNumberKey] = item.ImageNumber,
[Models.Internal.Machine.ReleaseNumberKey] = item.ReleaseNumber,
[Models.Internal.Machine.NameKey] = item.Title,
[Models.Internal.Machine.SaveTypeKey] = item.SaveType,
[Models.Internal.Machine.PublisherKey] = item.Publisher,
[Models.Internal.Machine.LocationKey] = item.Location,
[Models.Internal.Machine.SourceRomKey] = item.SourceRom,
[Models.Internal.Machine.LanguageKey] = item.Language,
[Models.Internal.Machine.Im1CRCKey] = item.Im1CRC,
[Models.Internal.Machine.Im2CRCKey] = item.Im2CRC,
[Models.Internal.Machine.CommentKey] = item.Comment,
[Models.Internal.Machine.DuplicateIDKey] = item.DuplicateID,
[Models.Metadata.Machine.ImageNumberKey] = item.ImageNumber,
[Models.Metadata.Machine.ReleaseNumberKey] = item.ReleaseNumber,
[Models.Metadata.Machine.NameKey] = item.Title,
[Models.Metadata.Machine.SaveTypeKey] = item.SaveType,
[Models.Metadata.Machine.PublisherKey] = item.Publisher,
[Models.Metadata.Machine.LocationKey] = item.Location,
[Models.Metadata.Machine.SourceRomKey] = item.SourceRom,
[Models.Metadata.Machine.LanguageKey] = item.Language,
[Models.Metadata.Machine.Im1CRCKey] = item.Im1CRC,
[Models.Metadata.Machine.Im2CRCKey] = item.Im2CRC,
[Models.Metadata.Machine.CommentKey] = item.Comment,
[Models.Metadata.Machine.DuplicateIDKey] = item.DuplicateID,
};
if (item.Files?.RomCRC != null && item.Files.RomCRC.Any())
{
machine[Models.Internal.Machine.RomKey] = item.Files.RomCRC
machine[Models.Metadata.Machine.RomKey] = item.Files.RomCRC
.Where(r => r != null)
.Select(romCRC =>
{
var rom = ConvertToInternalModel(romCRC);
rom[Models.Internal.Rom.SizeKey] = item.RomSize;
rom[Models.Metadata.Rom.SizeKey] = item.RomSize;
return rom;
})
.ToArray();
@@ -105,14 +105,14 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.OfflineList.FileRomCRC"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.OfflineList.FileRomCRC"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(FileRomCRC item)
private static Models.Metadata.Rom ConvertToInternalModel(FileRomCRC item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.ExtensionKey] = item.Extension,
[Models.Internal.Rom.CRCKey] = item.Content,
[Models.Metadata.Rom.ExtensionKey] = item.Extension,
[Models.Metadata.Rom.CRCKey] = item.Content,
};
return rom;
}

View File

@@ -11,17 +11,17 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.OpenMSX.SoftwareDb"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.OpenMSX.SoftwareDb"/>
/// </summary>
public static SoftwareDb? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static SoftwareDb? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var softwareDb = header != null ? ConvertHeaderFromInternalModel(header) : new SoftwareDb();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
softwareDb.Software = machines
@@ -34,33 +34,33 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.OpenMSX.SoftwareDb"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.OpenMSX.SoftwareDb"/>
/// </summary>
private static SoftwareDb ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static SoftwareDb ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var softwareDb = new SoftwareDb
{
Timestamp = item.ReadString(Models.Internal.Header.TimestampKey),
Timestamp = item.ReadString(Models.Metadata.Header.TimestampKey),
};
return softwareDb;
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to <cref="Models.OpenMSX.Software"/>
/// Convert from <cref="Models.Metadata.Machine"/> to <cref="Models.OpenMSX.Software"/>
/// </summary>
private static Software ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Software ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var game = new Software
{
Title = item.ReadString(Models.Internal.Machine.NameKey),
GenMSXID = item.ReadString(Models.Internal.Machine.GenMSXIDKey),
System = item.ReadString(Models.Internal.Machine.SystemKey),
Company = item.ReadString(Models.Internal.Machine.CompanyKey),
Year = item.ReadString(Models.Internal.Machine.YearKey),
Country = item.ReadString(Models.Internal.Machine.CountryKey),
Title = item.ReadString(Models.Metadata.Machine.NameKey),
GenMSXID = item.ReadString(Models.Metadata.Machine.GenMSXIDKey),
System = item.ReadString(Models.Metadata.Machine.SystemKey),
Company = item.ReadString(Models.Metadata.Machine.CompanyKey),
Year = item.ReadString(Models.Metadata.Machine.YearKey),
Country = item.ReadString(Models.Metadata.Machine.CountryKey),
};
var dumps = item.Read<Models.Internal.Dump[]>(Models.Internal.Machine.DumpKey);
var dumps = item.Read<Models.Metadata.Dump[]>(Models.Metadata.Machine.DumpKey);
if (dumps != null && dumps.Any())
{
game.Dump = dumps
@@ -73,25 +73,25 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Dump"/> to <cref="Models.OpenMSX.Dump"/>
/// Convert from <cref="Models.Metadata.Dump"/> to <cref="Models.OpenMSX.Dump"/>
/// </summary>
private static Dump ConvertFromInternalModel(Models.Internal.Dump item)
private static Dump ConvertFromInternalModel(Models.Metadata.Dump item)
{
var dump = new Dump();
var original = item.Read<Models.Internal.Original>(Models.Internal.Dump.OriginalKey);
var original = item.Read<Models.Metadata.Original>(Models.Metadata.Dump.OriginalKey);
if (original != null)
dump.Original = ConvertFromInternalModel(original);
var rom = item.Read<Models.Internal.Rom>(Models.Internal.Dump.RomKey);
var rom = item.Read<Models.Metadata.Rom>(Models.Metadata.Dump.RomKey);
if (rom != null)
dump.Rom = ConvertRomFromInternalModel(rom);
var megaRom = item.Read<Models.Internal.Rom>(Models.Internal.Dump.MegaRomKey);
var megaRom = item.Read<Models.Metadata.Rom>(Models.Metadata.Dump.MegaRomKey);
if (megaRom != null)
dump.Rom = ConvertMegaRomFromInternalModel(megaRom);
var sccPlusCart = item.Read<Models.Internal.Rom>(Models.Internal.Dump.SCCPlusCartKey);
var sccPlusCart = item.Read<Models.Metadata.Rom>(Models.Metadata.Dump.SCCPlusCartKey);
if (sccPlusCart != null)
dump.Rom = ConvertSCCPlusCartFromInternalModel(sccPlusCart);
@@ -99,59 +99,59 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.OpenMSX.MegaRom"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.OpenMSX.MegaRom"/>
/// </summary>
private static MegaRom ConvertMegaRomFromInternalModel(Models.Internal.Rom item)
private static MegaRom ConvertMegaRomFromInternalModel(Models.Metadata.Rom item)
{
var megaRom = new MegaRom
{
Start = item.ReadString(Models.Internal.Rom.StartKey),
Type = item.ReadString(Models.Internal.Rom.TypeKey),
Hash = item.ReadString(Models.Internal.Rom.SHA1Key),
Remark = item.ReadString(Models.Internal.Rom.RemarkKey),
Start = item.ReadString(Models.Metadata.Rom.StartKey),
Type = item.ReadString(Models.Metadata.Rom.TypeKey),
Hash = item.ReadString(Models.Metadata.Rom.SHA1Key),
Remark = item.ReadString(Models.Metadata.Rom.RemarkKey),
};
return megaRom;
}
/// <summary>
/// Convert from <cref="Models.Internal.Original"/> to <cref="Models.OpenMSX.Original"/>
/// Convert from <cref="Models.Metadata.Original"/> to <cref="Models.OpenMSX.Original"/>
/// </summary>
private static Original ConvertFromInternalModel(Models.Internal.Original item)
private static Original ConvertFromInternalModel(Models.Metadata.Original item)
{
var original = new Original
{
Value = item.ReadString(Models.Internal.Original.ValueKey),
Content = item.ReadString(Models.Internal.Original.ContentKey),
Value = item.ReadString(Models.Metadata.Original.ValueKey),
Content = item.ReadString(Models.Metadata.Original.ContentKey),
};
return original;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.OpenMSX.Rom"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.OpenMSX.Rom"/>
/// </summary>
private static Rom ConvertRomFromInternalModel(Models.Internal.Rom item)
private static Rom ConvertRomFromInternalModel(Models.Metadata.Rom item)
{
var rom = new Rom
{
Start = item.ReadString(Models.Internal.Rom.StartKey),
Type = item.ReadString(Models.Internal.Rom.TypeKey),
Hash = item.ReadString(Models.Internal.Rom.SHA1Key),
Remark = item.ReadString(Models.Internal.Rom.RemarkKey),
Start = item.ReadString(Models.Metadata.Rom.StartKey),
Type = item.ReadString(Models.Metadata.Rom.TypeKey),
Hash = item.ReadString(Models.Metadata.Rom.SHA1Key),
Remark = item.ReadString(Models.Metadata.Rom.RemarkKey),
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.OpenMSX.SCCPlusCart"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.OpenMSX.SCCPlusCart"/>
/// </summary>
private static SCCPlusCart ConvertSCCPlusCartFromInternalModel(Models.Internal.Rom item)
private static SCCPlusCart ConvertSCCPlusCartFromInternalModel(Models.Metadata.Rom item)
{
var sccPlusCart = new SCCPlusCart
{
Start = item.ReadString(Models.Internal.Rom.StartKey),
Type = item.ReadString(Models.Internal.Rom.TypeKey),
Hash = item.ReadString(Models.Internal.Rom.SHA1Key),
Remark = item.ReadString(Models.Internal.Rom.RemarkKey),
Start = item.ReadString(Models.Metadata.Rom.StartKey),
Type = item.ReadString(Models.Metadata.Rom.TypeKey),
Hash = item.ReadString(Models.Metadata.Rom.SHA1Key),
Remark = item.ReadString(Models.Metadata.Rom.RemarkKey),
};
return sccPlusCart;
}

View File

@@ -20,21 +20,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.OpenMSX.SoftwareDb"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.OpenMSX.SoftwareDb"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(SoftwareDb? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(SoftwareDb? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
if (item?.Software != null && item.Software.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Software
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Software
.Where(s => s != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -44,35 +44,35 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.OpenMSX.SoftwareDb"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.OpenMSX.SoftwareDb"/> to <cref="Models.Metadata.Header"/>
/// </summary>
public static Models.Internal.Header ConvertHeaderToInternalModel(SoftwareDb item)
public static Models.Metadata.Header ConvertHeaderToInternalModel(SoftwareDb item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.TimestampKey] = item.Timestamp,
[Models.Metadata.Header.TimestampKey] = item.Timestamp,
};
return header;
}
/// <summary>
/// Convert from <cref="Models.OpenMSX.Software"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.OpenMSX.Software"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
public static Models.Internal.Machine ConvertMachineToInternalModel(Software item)
public static Models.Metadata.Machine ConvertMachineToInternalModel(Software item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.NameKey] = item.Title,
[Models.Internal.Machine.GenMSXIDKey] = item.GenMSXID,
[Models.Internal.Machine.SystemKey] = item.System,
[Models.Internal.Machine.CompanyKey] = item.Company,
[Models.Internal.Machine.YearKey] = item.Year,
[Models.Internal.Machine.CountryKey] = item.Country,
[Models.Metadata.Machine.NameKey] = item.Title,
[Models.Metadata.Machine.GenMSXIDKey] = item.GenMSXID,
[Models.Metadata.Machine.SystemKey] = item.System,
[Models.Metadata.Machine.CompanyKey] = item.Company,
[Models.Metadata.Machine.YearKey] = item.Year,
[Models.Metadata.Machine.CountryKey] = item.Country,
};
if (item.Dump != null && item.Dump.Any())
{
machine[Models.Internal.Machine.DumpKey] = item.Dump
machine[Models.Metadata.Machine.DumpKey] = item.Dump
.Where(d => d != null)
.Select(ConvertToInternalModel)
.ToArray();
@@ -82,29 +82,29 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.OpenMSX.Dump"/> to <cref="Models.Internal.Dump"/>
/// Convert from <cref="Models.OpenMSX.Dump"/> to <cref="Models.Metadata.Dump"/>
/// </summary>
public static Models.Internal.Dump ConvertToInternalModel(Dump item)
public static Models.Metadata.Dump ConvertToInternalModel(Dump item)
{
var dump = new Models.Internal.Dump();
var dump = new Models.Metadata.Dump();
if (item.Original != null)
dump[Models.Internal.Dump.OriginalKey] = ConvertToInternalModel(item.Original);
dump[Models.Metadata.Dump.OriginalKey] = ConvertToInternalModel(item.Original);
if (item.Rom != null)
{
switch (item.Rom)
{
case Rom rom:
dump[Models.Internal.Dump.RomKey] = ConvertToInternalModel(rom);
dump[Models.Metadata.Dump.RomKey] = ConvertToInternalModel(rom);
break;
case MegaRom megaRom:
dump[Models.Internal.Dump.MegaRomKey] = ConvertToInternalModel(megaRom);
dump[Models.Metadata.Dump.MegaRomKey] = ConvertToInternalModel(megaRom);
break;
case SCCPlusCart sccPlusCart:
dump[Models.Internal.Dump.SCCPlusCartKey] = ConvertToInternalModel(sccPlusCart);
dump[Models.Metadata.Dump.SCCPlusCartKey] = ConvertToInternalModel(sccPlusCart);
break;
}
}
@@ -113,29 +113,29 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.OpenMSX.Original"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.OpenMSX.Original"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
public static Models.Internal.Original ConvertToInternalModel(Original item)
public static Models.Metadata.Original ConvertToInternalModel(Original item)
{
var original = new Models.Internal.Original
var original = new Models.Metadata.Original
{
[Models.Internal.Original.ValueKey] = item.Value,
[Models.Internal.Original.ContentKey] = item.Content,
[Models.Metadata.Original.ValueKey] = item.Value,
[Models.Metadata.Original.ContentKey] = item.Content,
};
return original;
}
/// <summary>
/// Convert from <cref="Models.OpenMSX.RomBase"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.OpenMSX.RomBase"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
public static Models.Internal.Rom ConvertToInternalModel(RomBase item)
public static Models.Metadata.Rom ConvertToInternalModel(RomBase item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.StartKey] = item.Start,
[Models.Internal.Rom.TypeKey] = item.Type,
[Models.Internal.Rom.SHA1Key] = item.Hash,
[Models.Internal.Rom.RemarkKey] = item.Remark,
[Models.Metadata.Rom.StartKey] = item.Start,
[Models.Metadata.Rom.TypeKey] = item.Type,
[Models.Metadata.Rom.SHA1Key] = item.Hash,
[Models.Metadata.Rom.RemarkKey] = item.Remark,
};
return rom;
}

View File

@@ -232,17 +232,17 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.RomCenter.MetadataFile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.RomCenter.MetadataFile"/>
/// </summary>
public static MetadataFile? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static MetadataFile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var metadataFile = header != null ? ConvertHeaderFromInternalModel(header) : new MetadataFile();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Games = new Games
@@ -258,52 +258,52 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.RomCenter.MetadataFile"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.RomCenter.MetadataFile"/>
/// </summary>
private static MetadataFile ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static MetadataFile ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var metadataFile = new MetadataFile();
if (item.ContainsKey(Models.Internal.Header.AuthorKey)
|| item.ContainsKey(Models.Internal.Header.VersionKey)
|| item.ContainsKey(Models.Internal.Header.EmailKey)
|| item.ContainsKey(Models.Internal.Header.HomepageKey)
|| item.ContainsKey(Models.Internal.Header.UrlKey)
|| item.ContainsKey(Models.Internal.Header.DateKey)
|| item.ContainsKey(Models.Internal.Header.CommentKey))
if (item.ContainsKey(Models.Metadata.Header.AuthorKey)
|| item.ContainsKey(Models.Metadata.Header.VersionKey)
|| item.ContainsKey(Models.Metadata.Header.EmailKey)
|| item.ContainsKey(Models.Metadata.Header.HomepageKey)
|| item.ContainsKey(Models.Metadata.Header.UrlKey)
|| item.ContainsKey(Models.Metadata.Header.DateKey)
|| item.ContainsKey(Models.Metadata.Header.CommentKey))
{
metadataFile.Credits = new Credits
{
Author = item.ReadString(Models.Internal.Header.AuthorKey),
Version = item.ReadString(Models.Internal.Header.VersionKey),
Email = item.ReadString(Models.Internal.Header.EmailKey),
Homepage = item.ReadString(Models.Internal.Header.HomepageKey),
Url = item.ReadString(Models.Internal.Header.UrlKey),
Date = item.ReadString(Models.Internal.Header.DateKey),
Comment = item.ReadString(Models.Internal.Header.CommentKey),
Author = item.ReadString(Models.Metadata.Header.AuthorKey),
Version = item.ReadString(Models.Metadata.Header.VersionKey),
Email = item.ReadString(Models.Metadata.Header.EmailKey),
Homepage = item.ReadString(Models.Metadata.Header.HomepageKey),
Url = item.ReadString(Models.Metadata.Header.UrlKey),
Date = item.ReadString(Models.Metadata.Header.DateKey),
Comment = item.ReadString(Models.Metadata.Header.CommentKey),
};
}
if (item.ContainsKey(Models.Internal.Header.DatVersionKey)
|| item.ContainsKey(Models.Internal.Header.PluginKey)
|| item.ContainsKey(Models.Internal.Header.ForceMergingKey))
if (item.ContainsKey(Models.Metadata.Header.DatVersionKey)
|| item.ContainsKey(Models.Metadata.Header.PluginKey)
|| item.ContainsKey(Models.Metadata.Header.ForceMergingKey))
{
metadataFile.Dat = new Dat
{
Version = item.ReadString(Models.Internal.Header.DatVersionKey),
Plugin = item.ReadString(Models.Internal.Header.PluginKey),
Split = item.ReadString(Models.Internal.Header.ForceMergingKey) == "split" ? "yes" : "no",
Merge = item.ReadString(Models.Internal.Header.ForceMergingKey) == "merge" ? "yes" : "no",
Version = item.ReadString(Models.Metadata.Header.DatVersionKey),
Plugin = item.ReadString(Models.Metadata.Header.PluginKey),
Split = item.ReadString(Models.Metadata.Header.ForceMergingKey) == "split" ? "yes" : "no",
Merge = item.ReadString(Models.Metadata.Header.ForceMergingKey) == "merge" ? "yes" : "no",
};
}
if (item.ContainsKey(Models.Internal.Header.RefNameKey)
|| item.ContainsKey(Models.Internal.Header.EmulatorVersionKey))
if (item.ContainsKey(Models.Metadata.Header.RefNameKey)
|| item.ContainsKey(Models.Metadata.Header.EmulatorVersionKey))
{
metadataFile.Emulator = new Emulator
{
RefName = item.ReadString(Models.Internal.Header.RefNameKey),
Version = item.ReadString(Models.Internal.Header.EmulatorVersionKey),
RefName = item.ReadString(Models.Metadata.Header.RefNameKey),
Version = item.ReadString(Models.Metadata.Header.EmulatorVersionKey),
};
}
@@ -311,11 +311,11 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to an array of <cref="Models.RomCenter.Rom"/>
/// Convert from <cref="Models.Metadata.Machine"/> to an array of <cref="Models.RomCenter.Rom"/>
/// </summary>
private static Rom[] ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Rom[] ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms == null)
return Array.Empty<Rom>();
@@ -326,21 +326,21 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.RomCenter.Rom"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.RomCenter.Rom"/>
/// </summary>
private static Rom ConvertFromInternalModel(Models.Internal.Rom item, Models.Internal.Machine parent)
private static Rom ConvertFromInternalModel(Models.Metadata.Rom item, Models.Metadata.Machine parent)
{
var row = new Rom
{
RomName = item.ReadString(Models.Internal.Rom.NameKey),
RomCRC = item.ReadString(Models.Internal.Rom.CRCKey),
RomSize = item.ReadString(Models.Internal.Rom.SizeKey),
MergeName = item.ReadString(Models.Internal.Rom.MergeKey),
RomName = item.ReadString(Models.Metadata.Rom.NameKey),
RomCRC = item.ReadString(Models.Metadata.Rom.CRCKey),
RomSize = item.ReadString(Models.Metadata.Rom.SizeKey),
MergeName = item.ReadString(Models.Metadata.Rom.MergeKey),
ParentName = parent.ReadString(Models.Internal.Machine.RomOfKey),
//ParentDescription = parent.ReadString(Models.Internal.Machine.ParentDescriptionKey), // This is unmappable
GameName = parent.ReadString(Models.Internal.Machine.NameKey),
GameDescription = parent.ReadString(Models.Internal.Machine.DescriptionKey),
ParentName = parent.ReadString(Models.Metadata.Machine.RomOfKey),
//ParentDescription = parent.ReadString(Models.Metadata.Machine.ParentDescriptionKey), // This is unmappable
GameName = parent.ReadString(Models.Metadata.Machine.NameKey),
GameDescription = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
};
return row;
}

View File

@@ -176,21 +176,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.RomCenter.MetadataFile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.RomCenter.MetadataFile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(MetadataFile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
if (item?.Games?.Rom != null && item.Games.Rom.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Games.Rom
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Games.Rom
.Where(r => r != null)
.Select(ConvertMachineToInternalModel).ToArray();
}
@@ -199,71 +199,71 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.RomCenter.MetadataFile"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.RomCenter.MetadataFile"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(MetadataFile item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(MetadataFile item)
{
var header = new Models.Internal.Header();
var header = new Models.Metadata.Header();
if (item.Credits != null)
{
header[Models.Internal.Header.AuthorKey] = item.Credits.Author;
header[Models.Internal.Header.VersionKey] = item.Credits.Version;
header[Models.Internal.Header.EmailKey] = item.Credits.Email;
header[Models.Internal.Header.HomepageKey] = item.Credits.Homepage;
header[Models.Internal.Header.UrlKey] = item.Credits.Url;
header[Models.Internal.Header.DateKey] = item.Credits.Date;
header[Models.Internal.Header.CommentKey] = item.Credits.Comment;
header[Models.Metadata.Header.AuthorKey] = item.Credits.Author;
header[Models.Metadata.Header.VersionKey] = item.Credits.Version;
header[Models.Metadata.Header.EmailKey] = item.Credits.Email;
header[Models.Metadata.Header.HomepageKey] = item.Credits.Homepage;
header[Models.Metadata.Header.UrlKey] = item.Credits.Url;
header[Models.Metadata.Header.DateKey] = item.Credits.Date;
header[Models.Metadata.Header.CommentKey] = item.Credits.Comment;
}
if (item.Dat != null)
{
header[Models.Internal.Header.DatVersionKey] = item.Dat.Version;
header[Models.Internal.Header.PluginKey] = item.Dat.Plugin;
header[Models.Metadata.Header.DatVersionKey] = item.Dat.Version;
header[Models.Metadata.Header.PluginKey] = item.Dat.Plugin;
if (item.Dat.Split == "yes" || item.Dat.Split == "1")
header[Models.Internal.Header.ForceMergingKey] = "split";
header[Models.Metadata.Header.ForceMergingKey] = "split";
else if (item.Dat.Merge == "yes" || item.Dat.Merge == "1")
header[Models.Internal.Header.ForceMergingKey] = "merge";
header[Models.Metadata.Header.ForceMergingKey] = "merge";
}
if (item.Emulator != null)
{
header[Models.Internal.Header.RefNameKey] = item.Emulator.RefName;
header[Models.Internal.Header.EmulatorVersionKey] = item.Emulator.Version;
header[Models.Metadata.Header.RefNameKey] = item.Emulator.RefName;
header[Models.Metadata.Header.EmulatorVersionKey] = item.Emulator.Version;
}
return header;
}
/// <summary>
/// Convert from <cref="Models.RomCenter.Game"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.RomCenter.Game"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Rom item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Rom item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.RomOfKey] = item.ParentName,
//[Models.Internal.Machine.ParentDescriptionKey] = item.ParentDescription, // This is unmappable
[Models.Internal.Machine.NameKey] = item.GameName,
[Models.Internal.Machine.DescriptionKey] = item.GameDescription,
[Models.Internal.Machine.RomKey] = new Models.Internal.Rom[] { ConvertToInternalModel(item) },
[Models.Metadata.Machine.RomOfKey] = item.ParentName,
//[Models.Metadata.Machine.ParentDescriptionKey] = item.ParentDescription, // This is unmappable
[Models.Metadata.Machine.NameKey] = item.GameName,
[Models.Metadata.Machine.DescriptionKey] = item.GameDescription,
[Models.Metadata.Machine.RomKey] = new Models.Metadata.Rom[] { ConvertToInternalModel(item) },
};
return machine;
}
/// <summary>
/// Convert from <cref="Models.RomCenter.Rom"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.RomCenter.Rom"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(Rom item)
private static Models.Metadata.Rom ConvertToInternalModel(Rom item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.RomName,
[Models.Internal.Rom.CRCKey] = item.RomCRC,
[Models.Internal.Rom.SizeKey] = item.RomSize,
[Models.Internal.Rom.MergeKey] = item.MergeName,
[Models.Metadata.Rom.NameKey] = item.RomName,
[Models.Metadata.Rom.CRCKey] = item.RomCRC,
[Models.Metadata.Rom.SizeKey] = item.RomSize,
[Models.Metadata.Rom.MergeKey] = item.MergeName,
};
return rom;
}

View File

@@ -8,7 +8,10 @@
<ItemGroup>
<ProjectReference Include="..\SabreTools.Core\SabreTools.Core.csproj" />
<ProjectReference Include="..\SabreTools.IO\SabreTools.IO.csproj" />
<ProjectReference Include="..\SabreTools.Models\SabreTools.Models.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.Models" Version="1.1.0" />
</ItemGroup>
</Project>

View File

@@ -123,17 +123,17 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.SeparatedValue.MetadataFile"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.SeparatedValue.MetadataFile"/>
/// </summary>
public static MetadataFile? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static MetadataFile? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var metadataFile = header != null ? ConvertHeaderFromInternalModel(header) : new MetadataFile();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Row = machines
@@ -146,25 +146,25 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.SeparatedValue.MetadataFile"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.SeparatedValue.MetadataFile"/>
/// </summary>
private static MetadataFile ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static MetadataFile ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var metadataFile = new MetadataFile
{
Header = item.ReadStringArray(Models.Internal.Header.HeaderKey),
Header = item.ReadStringArray(Models.Metadata.Header.HeaderKey),
};
return metadataFile;
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to an array of <cref="Models.SeparatedValue.Row"/>
/// Convert from <cref="Models.Metadata.Machine"/> to an array of <cref="Models.SeparatedValue.Row"/>
/// </summary>
private static Row[] ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Row[] ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var rowItems = new List<Row>();
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.Machine.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.Machine.RomKey);
if (roms != null && roms.Any())
{
rowItems.AddRange(roms
@@ -172,7 +172,7 @@ namespace SabreTools.Serialization
.Select(rom => ConvertFromInternalModel(rom, item)));
}
var disks = item.Read<Models.Internal.Disk[]>(Models.Internal.Machine.DiskKey);
var disks = item.Read<Models.Metadata.Disk[]>(Models.Metadata.Machine.DiskKey);
if (disks != null && disks.Any())
{
rowItems.AddRange(disks
@@ -180,7 +180,7 @@ namespace SabreTools.Serialization
.Select(disk => ConvertFromInternalModel(disk, item)));
}
var media = item.Read<Models.Internal.Media[]>(Models.Internal.Machine.MediaKey);
var media = item.Read<Models.Metadata.Media[]>(Models.Metadata.Machine.MediaKey);
if (media != null && media.Any())
{
rowItems.AddRange(media
@@ -192,62 +192,62 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Disk"/> to <cref="Models.SeparatedValue.Row"/>
/// Convert from <cref="Models.Metadata.Disk"/> to <cref="Models.SeparatedValue.Row"/>
/// </summary>
private static Row ConvertFromInternalModel(Models.Internal.Disk item, Models.Internal.Machine parent)
private static Row ConvertFromInternalModel(Models.Metadata.Disk item, Models.Metadata.Machine parent)
{
var row = new Row
{
GameName = parent.ReadString(Models.Internal.Machine.NameKey),
Description = parent.ReadString(Models.Internal.Machine.DescriptionKey),
GameName = parent.ReadString(Models.Metadata.Machine.NameKey),
Description = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
Type = "disk",
DiskName = item.ReadString(Models.Internal.Disk.NameKey),
MD5 = item.ReadString(Models.Internal.Disk.MD5Key),
SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key),
Status = item.ReadString(Models.Internal.Disk.StatusKey),
DiskName = item.ReadString(Models.Metadata.Disk.NameKey),
MD5 = item.ReadString(Models.Metadata.Disk.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Disk.SHA1Key),
Status = item.ReadString(Models.Metadata.Disk.StatusKey),
};
return row;
}
/// <summary>
/// Convert from <cref="Models.Internal.Media"/> to <cref="Models.SeparatedValue.Row"/>
/// Convert from <cref="Models.Metadata.Media"/> to <cref="Models.SeparatedValue.Row"/>
/// </summary>
private static Row ConvertFromInternalModel(Models.Internal.Media item, Models.Internal.Machine parent)
private static Row ConvertFromInternalModel(Models.Metadata.Media item, Models.Metadata.Machine parent)
{
var row = new Row
{
GameName = parent.ReadString(Models.Internal.Machine.NameKey),
Description = parent.ReadString(Models.Internal.Machine.DescriptionKey),
GameName = parent.ReadString(Models.Metadata.Machine.NameKey),
Description = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
Type = "media",
DiskName = item.ReadString(Models.Internal.Media.NameKey),
MD5 = item.ReadString(Models.Internal.Media.MD5Key),
SHA1 = item.ReadString(Models.Internal.Media.SHA1Key),
SHA256 = item.ReadString(Models.Internal.Media.SHA256Key),
SpamSum = item.ReadString(Models.Internal.Media.SpamSumKey),
DiskName = item.ReadString(Models.Metadata.Media.NameKey),
MD5 = item.ReadString(Models.Metadata.Media.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Media.SHA1Key),
SHA256 = item.ReadString(Models.Metadata.Media.SHA256Key),
SpamSum = item.ReadString(Models.Metadata.Media.SpamSumKey),
};
return row;
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.SeparatedValue.Row"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.SeparatedValue.Row"/>
/// </summary>
private static Row ConvertFromInternalModel(Models.Internal.Rom item, Models.Internal.Machine parent)
private static Row ConvertFromInternalModel(Models.Metadata.Rom item, Models.Metadata.Machine parent)
{
var row = new Row
{
GameName = parent?.ReadString(Models.Internal.Machine.NameKey),
Description = parent?.ReadString(Models.Internal.Machine.DescriptionKey),
GameName = parent?.ReadString(Models.Metadata.Machine.NameKey),
Description = parent?.ReadString(Models.Metadata.Machine.DescriptionKey),
Type = "rom",
RomName = item.ReadString(Models.Internal.Rom.NameKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
CRC = item.ReadString(Models.Internal.Rom.CRCKey),
MD5 = item.ReadString(Models.Internal.Rom.MD5Key),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
SHA256 = item.ReadString(Models.Internal.Rom.SHA256Key),
SHA384 = item.ReadString(Models.Internal.Rom.SHA384Key),
SHA512 = item.ReadString(Models.Internal.Rom.SHA512Key),
SpamSum = item.ReadString(Models.Internal.Rom.SpamSumKey),
Status = item.ReadString(Models.Internal.Rom.StatusKey),
RomName = item.ReadString(Models.Metadata.Rom.NameKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
MD5 = item.ReadString(Models.Metadata.Rom.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
SHA256 = item.ReadString(Models.Metadata.Rom.SHA256Key),
SHA384 = item.ReadString(Models.Metadata.Rom.SHA384Key),
SHA512 = item.ReadString(Models.Metadata.Rom.SHA512Key),
SpamSum = item.ReadString(Models.Metadata.Rom.SpamSumKey),
Status = item.ReadString(Models.Metadata.Rom.StatusKey),
};
return row;
}

View File

@@ -131,69 +131,69 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.SeparatedValue.MetadataFile"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.SeparatedValue.MetadataFile"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(MetadataFile? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(MetadataFile? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
if (item?.Row != null && item.Row.Any())
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Row.Select(ConvertMachineToInternalModel).ToArray();
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Row.Select(ConvertMachineToInternalModel).ToArray();
return metadataFile;
}
/// <summary>
/// Convert from <cref="Models.SeparatedValue.MetadataFile"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.SeparatedValue.MetadataFile"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(MetadataFile item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(MetadataFile item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.HeaderKey] = item.Header,
[Models.Metadata.Header.HeaderKey] = item.Header,
};
if (item.Row != null && item.Row.Any())
{
var first = item.Row[0];
//header[Models.Internal.Header.FileNameKey] = first.FileName; // Not possible to map
header[Models.Internal.Header.NameKey] = first.FileName;
header[Models.Internal.Header.DescriptionKey] = first.Description;
//header[Models.Metadata.Header.FileNameKey] = first.FileName; // Not possible to map
header[Models.Metadata.Header.NameKey] = first.FileName;
header[Models.Metadata.Header.DescriptionKey] = first.Description;
}
return header;
}
/// <summary>
/// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Row item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Row item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.NameKey] = item.GameName,
[Models.Internal.Machine.DescriptionKey] = item.GameDescription,
[Models.Metadata.Machine.NameKey] = item.GameName,
[Models.Metadata.Machine.DescriptionKey] = item.GameDescription,
};
var datItem = ConvertToInternalModel(item);
switch (datItem)
{
case Models.Internal.Disk disk:
machine[Models.Internal.Machine.DiskKey] = new Models.Internal.Disk[] { disk };
case Models.Metadata.Disk disk:
machine[Models.Metadata.Machine.DiskKey] = new Models.Metadata.Disk[] { disk };
break;
case Models.Internal.Media media:
machine[Models.Internal.Machine.MediaKey] = new Models.Internal.Media[] { media };
case Models.Metadata.Media media:
machine[Models.Metadata.Machine.MediaKey] = new Models.Metadata.Media[] { media };
break;
case Models.Internal.Rom rom:
machine[Models.Internal.Machine.RomKey] = new Models.Internal.Rom[] { rom };
case Models.Metadata.Rom rom:
machine[Models.Metadata.Machine.RomKey] = new Models.Metadata.Rom[] { rom };
break;
}
@@ -201,39 +201,39 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="Models.Internal.DatItem"/>
/// Convert from <cref="Models.SeparatedValue.Row"/> to <cref="Models.Metadata.DatItem"/>
/// </summary>
private static Models.Internal.DatItem? ConvertToInternalModel(Row item)
private static Models.Metadata.DatItem? ConvertToInternalModel(Row item)
{
return item.Type switch
{
"disk" => new Models.Internal.Disk
"disk" => new Models.Metadata.Disk
{
[Models.Internal.Disk.NameKey] = item.DiskName,
[Models.Internal.Disk.MD5Key] = item.MD5,
[Models.Internal.Disk.SHA1Key] = item.SHA1,
[Models.Internal.Disk.StatusKey] = item.Status,
[Models.Metadata.Disk.NameKey] = item.DiskName,
[Models.Metadata.Disk.MD5Key] = item.MD5,
[Models.Metadata.Disk.SHA1Key] = item.SHA1,
[Models.Metadata.Disk.StatusKey] = item.Status,
},
"media" => new Models.Internal.Media
"media" => new Models.Metadata.Media
{
[Models.Internal.Media.NameKey] = item.DiskName,
[Models.Internal.Media.MD5Key] = item.MD5,
[Models.Internal.Media.SHA1Key] = item.SHA1,
[Models.Internal.Media.SHA256Key] = item.SHA256,
[Models.Internal.Media.SpamSumKey] = item.SpamSum,
[Models.Metadata.Media.NameKey] = item.DiskName,
[Models.Metadata.Media.MD5Key] = item.MD5,
[Models.Metadata.Media.SHA1Key] = item.SHA1,
[Models.Metadata.Media.SHA256Key] = item.SHA256,
[Models.Metadata.Media.SpamSumKey] = item.SpamSum,
},
"rom" => new Models.Internal.Rom
"rom" => new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.RomName,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Internal.Rom.CRCKey] = item.CRC,
[Models.Internal.Rom.MD5Key] = item.MD5,
[Models.Internal.Rom.SHA1Key] = item.SHA1,
[Models.Internal.Rom.SHA256Key] = item.SHA256,
[Models.Internal.Rom.SHA384Key] = item.SHA384,
[Models.Internal.Rom.SHA512Key] = item.SHA512,
[Models.Internal.Rom.SpamSumKey] = item.SpamSum,
[Models.Internal.Rom.StatusKey] = item.Status,
[Models.Metadata.Rom.NameKey] = item.RomName,
[Models.Metadata.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.CRCKey] = item.CRC,
[Models.Metadata.Rom.MD5Key] = item.MD5,
[Models.Metadata.Rom.SHA1Key] = item.SHA1,
[Models.Metadata.Rom.SHA256Key] = item.SHA256,
[Models.Metadata.Rom.SHA384Key] = item.SHA384,
[Models.Metadata.Rom.SHA512Key] = item.SHA512,
[Models.Metadata.Rom.SpamSumKey] = item.SpamSum,
[Models.Metadata.Rom.StatusKey] = item.Status,
},
_ => null,
};

View File

@@ -11,17 +11,17 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.Internal.MetadataFile"/> to <cref="Models.SoftawreList.SoftwareList"/>
/// Convert from <cref="Models.Metadata.MetadataFile"/> to <cref="Models.SoftawreList.SoftwareList"/>
/// </summary>
public static SoftwareList? ConvertFromInternalModel(Models.Internal.MetadataFile? item)
public static SoftwareList? ConvertFromInternalModel(Models.Metadata.MetadataFile? item)
{
if (item == null)
return null;
var header = item.Read<Models.Internal.Header>(Models.Internal.MetadataFile.HeaderKey);
var header = item.Read<Models.Metadata.Header>(Models.Metadata.MetadataFile.HeaderKey);
var metadataFile = header != null ? ConvertHeaderFromInternalModel(header) : new SoftwareList();
var machines = item.Read<Models.Internal.Machine[]>(Models.Internal.MetadataFile.MachineKey);
var machines = item.Read<Models.Metadata.Machine[]>(Models.Metadata.MetadataFile.MachineKey);
if (machines != null && machines.Any())
{
metadataFile.Software = machines
@@ -34,36 +34,36 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Header"/> to <cref="Models.SoftwareList.SoftwareList"/>
/// Convert from <cref="Models.Metadata.Header"/> to <cref="Models.SoftwareList.SoftwareList"/>
/// </summary>
private static SoftwareList ConvertHeaderFromInternalModel(Models.Internal.Header item)
private static SoftwareList ConvertHeaderFromInternalModel(Models.Metadata.Header item)
{
var softwareList = new SoftwareList
{
Name = item.ReadString(Models.Internal.Header.NameKey),
Description = item.ReadString(Models.Internal.Header.DescriptionKey),
Notes = item.ReadString(Models.Internal.Header.NotesKey),
Name = item.ReadString(Models.Metadata.Header.NameKey),
Description = item.ReadString(Models.Metadata.Header.DescriptionKey),
Notes = item.ReadString(Models.Metadata.Header.NotesKey),
};
return softwareList;
}
/// <summary>
/// Convert from <cref="Models.Internal.Machine"/> to <cref="Models.SoftwareList.Software"/>
/// Convert from <cref="Models.Metadata.Machine"/> to <cref="Models.SoftwareList.Software"/>
/// </summary>
private static Software ConvertMachineFromInternalModel(Models.Internal.Machine item)
private static Software ConvertMachineFromInternalModel(Models.Metadata.Machine item)
{
var software = new Software
{
Name = item.ReadString(Models.Internal.Machine.NameKey),
CloneOf = item.ReadString(Models.Internal.Machine.CloneOfKey),
Supported = item.ReadString(Models.Internal.Machine.SupportedKey),
Description = item.ReadString(Models.Internal.Machine.DescriptionKey),
Year = item.ReadString(Models.Internal.Machine.YearKey),
Publisher = item.ReadString(Models.Internal.Machine.PublisherKey),
Notes = item.ReadString(Models.Internal.Machine.NotesKey),
Name = item.ReadString(Models.Metadata.Machine.NameKey),
CloneOf = item.ReadString(Models.Metadata.Machine.CloneOfKey),
Supported = item.ReadString(Models.Metadata.Machine.SupportedKey),
Description = item.ReadString(Models.Metadata.Machine.DescriptionKey),
Year = item.ReadString(Models.Metadata.Machine.YearKey),
Publisher = item.ReadString(Models.Metadata.Machine.PublisherKey),
Notes = item.ReadString(Models.Metadata.Machine.NotesKey),
};
var infos = item.Read<Models.Internal.Info[]>(Models.Internal.Machine.InfoKey);
var infos = item.Read<Models.Metadata.Info[]>(Models.Metadata.Machine.InfoKey);
if (infos != null && infos.Any())
{
software.Info = infos
@@ -72,7 +72,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var sharedFeats = item.Read<Models.Internal.SharedFeat[]>(Models.Internal.Machine.SharedFeatKey);
var sharedFeats = item.Read<Models.Metadata.SharedFeat[]>(Models.Metadata.Machine.SharedFeatKey);
if (sharedFeats != null && sharedFeats.Any())
{
software.SharedFeat = sharedFeats
@@ -81,7 +81,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var parts = item.Read<Models.Internal.Part[]>(Models.Internal.Machine.PartKey);
var parts = item.Read<Models.Metadata.Part[]>(Models.Metadata.Machine.PartKey);
if (parts != null && parts.Any())
{
software.Part = parts
@@ -94,19 +94,19 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.DataArea"/> to <cref="Models.SoftwareList.DataArea"/>
/// Convert from <cref="Models.Metadata.DataArea"/> to <cref="Models.SoftwareList.DataArea"/>
/// </summary>
private static DataArea ConvertFromInternalModel(Models.Internal.DataArea item)
private static DataArea ConvertFromInternalModel(Models.Metadata.DataArea item)
{
var dataArea = new DataArea
{
Name = item.ReadString(Models.Internal.DataArea.NameKey),
Size = item.ReadString(Models.Internal.DataArea.SizeKey),
Width = item.ReadString(Models.Internal.DataArea.WidthKey),
Endianness = item.ReadString(Models.Internal.DataArea.EndiannessKey),
Name = item.ReadString(Models.Metadata.DataArea.NameKey),
Size = item.ReadString(Models.Metadata.DataArea.SizeKey),
Width = item.ReadString(Models.Metadata.DataArea.WidthKey),
Endianness = item.ReadString(Models.Metadata.DataArea.EndiannessKey),
};
var roms = item.Read<Models.Internal.Rom[]>(Models.Internal.DataArea.RomKey);
var roms = item.Read<Models.Metadata.Rom[]>(Models.Metadata.DataArea.RomKey);
if (roms != null && roms.Any())
{
dataArea.Rom = roms
@@ -119,18 +119,18 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.DipSwitch"/> to <cref="Models.SoftwareList.DipSwitch"/>
/// Convert from <cref="Models.Metadata.DipSwitch"/> to <cref="Models.SoftwareList.DipSwitch"/>
/// </summary>
private static DipSwitch ConvertFromInternalModel(Models.Internal.DipSwitch item)
private static DipSwitch ConvertFromInternalModel(Models.Metadata.DipSwitch item)
{
var dipSwitch = new DipSwitch
{
Name = item.ReadString(Models.Internal.DipSwitch.NameKey),
Tag = item.ReadString(Models.Internal.DipSwitch.TagKey),
Mask = item.ReadString(Models.Internal.DipSwitch.MaskKey),
Name = item.ReadString(Models.Metadata.DipSwitch.NameKey),
Tag = item.ReadString(Models.Metadata.DipSwitch.TagKey),
Mask = item.ReadString(Models.Metadata.DipSwitch.MaskKey),
};
var dipValues = item.Read<Models.Internal.DipValue[]>(Models.Internal.DipSwitch.DipValueKey);
var dipValues = item.Read<Models.Metadata.DipValue[]>(Models.Metadata.DipSwitch.DipValueKey);
if (dipValues != null && dipValues.Any())
{
dipSwitch.DipValue = dipValues
@@ -143,46 +143,46 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.DipValue"/> to <cref="Models.SoftwareList.DipValue"/>
/// Convert from <cref="Models.Metadata.DipValue"/> to <cref="Models.SoftwareList.DipValue"/>
/// </summary>
private static DipValue ConvertFromInternalModel(Models.Internal.DipValue item)
private static DipValue ConvertFromInternalModel(Models.Metadata.DipValue item)
{
var dipValue = new DipValue
{
Name = item.ReadString(Models.Internal.DipValue.NameKey),
Value = item.ReadString(Models.Internal.DipValue.ValueKey),
Default = item.ReadString(Models.Internal.DipValue.DefaultKey),
Name = item.ReadString(Models.Metadata.DipValue.NameKey),
Value = item.ReadString(Models.Metadata.DipValue.ValueKey),
Default = item.ReadString(Models.Metadata.DipValue.DefaultKey),
};
return dipValue;
}
/// <summary>
/// Convert from <cref="Models.Internal.Disk"/> to <cref="Models.SoftwareList.Disk"/>
/// Convert from <cref="Models.Metadata.Disk"/> to <cref="Models.SoftwareList.Disk"/>
/// </summary>
private static Disk ConvertFromInternalModel(Models.Internal.Disk item)
private static Disk ConvertFromInternalModel(Models.Metadata.Disk item)
{
var disk = new Disk
{
Name = item.ReadString(Models.Internal.Disk.NameKey),
MD5 = item.ReadString(Models.Internal.Disk.MD5Key),
SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key),
Status = item.ReadString(Models.Internal.Disk.StatusKey),
Writeable = item.ReadString(Models.Internal.Disk.WritableKey),
Name = item.ReadString(Models.Metadata.Disk.NameKey),
MD5 = item.ReadString(Models.Metadata.Disk.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Disk.SHA1Key),
Status = item.ReadString(Models.Metadata.Disk.StatusKey),
Writeable = item.ReadString(Models.Metadata.Disk.WritableKey),
};
return disk;
}
/// <summary>
/// Convert from <cref="Models.Internal.DiskArea"/> to <cref="Models.SoftwareList.DiskArea"/>
/// Convert from <cref="Models.Metadata.DiskArea"/> to <cref="Models.SoftwareList.DiskArea"/>
/// </summary>
private static DiskArea ConvertFromInternalModel(Models.Internal.DiskArea item)
private static DiskArea ConvertFromInternalModel(Models.Metadata.DiskArea item)
{
var diskArea = new DiskArea
{
Name = item.ReadString(Models.Internal.DiskArea.NameKey),
Name = item.ReadString(Models.Metadata.DiskArea.NameKey),
};
var disks = item.Read<Models.Internal.Disk[]>(Models.Internal.DiskArea.DiskKey);
var disks = item.Read<Models.Metadata.Disk[]>(Models.Metadata.DiskArea.DiskKey);
if (disks != null && disks.Any())
{
diskArea.Disk = disks
@@ -195,43 +195,43 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Feature"/> to <cref="Models.SoftwareList.Feature"/>
/// Convert from <cref="Models.Metadata.Feature"/> to <cref="Models.SoftwareList.Feature"/>
/// </summary>
private static Feature ConvertFromInternalModel(Models.Internal.Feature item)
private static Feature ConvertFromInternalModel(Models.Metadata.Feature item)
{
var feature = new Feature
{
Name = item.ReadString(Models.Internal.Feature.NameKey),
Value = item.ReadString(Models.Internal.Feature.ValueKey),
Name = item.ReadString(Models.Metadata.Feature.NameKey),
Value = item.ReadString(Models.Metadata.Feature.ValueKey),
};
return feature;
}
/// <summary>
/// Convert from <cref="Models.Internal.Info"/> to <cref="Models.SoftwareList.Info"/>
/// Convert from <cref="Models.Metadata.Info"/> to <cref="Models.SoftwareList.Info"/>
/// </summary>
private static Info ConvertFromInternalModel(Models.Internal.Info item)
private static Info ConvertFromInternalModel(Models.Metadata.Info item)
{
var info = new Info
{
Name = item.ReadString(Models.Internal.Info.NameKey),
Value = item.ReadString(Models.Internal.Info.ValueKey),
Name = item.ReadString(Models.Metadata.Info.NameKey),
Value = item.ReadString(Models.Metadata.Info.ValueKey),
};
return info;
}
/// <summary>
/// Convert from <cref="Models.Internal.Part"/> to <cref="Models.SoftwareList.Part"/>
/// Convert from <cref="Models.Metadata.Part"/> to <cref="Models.SoftwareList.Part"/>
/// </summary>
private static Part ConvertFromInternalModel(Models.Internal.Part item)
private static Part ConvertFromInternalModel(Models.Metadata.Part item)
{
var part = new Part
{
Name = item.ReadString(Models.Internal.Part.NameKey),
Interface = item.ReadString(Models.Internal.Part.InterfaceKey),
Name = item.ReadString(Models.Metadata.Part.NameKey),
Interface = item.ReadString(Models.Metadata.Part.InterfaceKey),
};
var features = item.Read<Models.Internal.Feature[]>(Models.Internal.Part.FeatureKey);
var features = item.Read<Models.Metadata.Feature[]>(Models.Metadata.Part.FeatureKey);
if (features != null && features.Any())
{
part.Feature = features
@@ -240,7 +240,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var dataAreas = item.Read<Models.Internal.DataArea[]>(Models.Internal.Part.DataAreaKey);
var dataAreas = item.Read<Models.Metadata.DataArea[]>(Models.Metadata.Part.DataAreaKey);
if (dataAreas != null && dataAreas.Any())
{
part.DataArea = dataAreas
@@ -249,7 +249,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var diskAreas = item.Read<Models.Internal.DiskArea[]>(Models.Internal.Part.DiskAreaKey);
var diskAreas = item.Read<Models.Metadata.DiskArea[]>(Models.Metadata.Part.DiskAreaKey);
if (diskAreas != null && diskAreas.Any())
{
part.DiskArea = diskAreas
@@ -258,7 +258,7 @@ namespace SabreTools.Serialization
.ToArray();
}
var dipSwitches = item.Read<Models.Internal.DipSwitch[]>(Models.Internal.Part.DipSwitchKey);
var dipSwitches = item.Read<Models.Metadata.DipSwitch[]>(Models.Metadata.Part.DipSwitchKey);
if (dipSwitches != null && dipSwitches.Any())
{
part.DipSwitch = dipSwitches
@@ -271,34 +271,34 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.Internal.Rom"/> to <cref="Models.SoftwareList.Rom"/>
/// Convert from <cref="Models.Metadata.Rom"/> to <cref="Models.SoftwareList.Rom"/>
/// </summary>
private static Rom ConvertFromInternalModel(Models.Internal.Rom item)
private static Rom ConvertFromInternalModel(Models.Metadata.Rom item)
{
var rom = new Rom
{
Name = item.ReadString(Models.Internal.Rom.NameKey),
Size = item.ReadString(Models.Internal.Rom.SizeKey),
Length = item.ReadString(Models.Internal.Rom.LengthKey),
CRC = item.ReadString(Models.Internal.Rom.CRCKey),
SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
Offset = item.ReadString(Models.Internal.Rom.OffsetKey),
Value = item.ReadString(Models.Internal.Rom.ValueKey),
Status = item.ReadString(Models.Internal.Rom.StatusKey),
LoadFlag = item.ReadString(Models.Internal.Rom.LoadFlagKey),
Name = item.ReadString(Models.Metadata.Rom.NameKey),
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
Length = item.ReadString(Models.Metadata.Rom.LengthKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
SHA1 = item.ReadString(Models.Metadata.Rom.SHA1Key),
Offset = item.ReadString(Models.Metadata.Rom.OffsetKey),
Value = item.ReadString(Models.Metadata.Rom.ValueKey),
Status = item.ReadString(Models.Metadata.Rom.StatusKey),
LoadFlag = item.ReadString(Models.Metadata.Rom.LoadFlagKey),
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.Internal.SharedFeat"/> to <cref="Models.SoftwareList.SharedFeat"/>
/// Convert from <cref="Models.Metadata.SharedFeat"/> to <cref="Models.SoftwareList.SharedFeat"/>
/// </summary>
private static SharedFeat ConvertFromInternalModel(Models.Internal.SharedFeat item)
private static SharedFeat ConvertFromInternalModel(Models.Metadata.SharedFeat item)
{
var sharedFeat = new SharedFeat
{
Name = item.ReadString(Models.Internal.SharedFeat.NameKey),
Value = item.ReadString(Models.Internal.SharedFeat.ValueKey),
Name = item.ReadString(Models.Metadata.SharedFeat.NameKey),
Value = item.ReadString(Models.Metadata.SharedFeat.ValueKey),
};
return sharedFeat;
}

View File

@@ -20,21 +20,21 @@ namespace SabreTools.Serialization
#region Internal
/// <summary>
/// Convert from <cref="Models.SoftwareList.SoftwareList"/> to <cref="Models.Internal.MetadataFile"/>
/// Convert from <cref="Models.SoftwareList.SoftwareList"/> to <cref="Models.Metadata.MetadataFile"/>
/// </summary>
public static Models.Internal.MetadataFile? ConvertToInternalModel(SoftwareList? item)
public static Models.Metadata.MetadataFile? ConvertToInternalModel(SoftwareList? item)
{
if (item == null)
return null;
var metadataFile = new Models.Internal.MetadataFile
var metadataFile = new Models.Metadata.MetadataFile
{
[Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
[Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
};
if (item?.Software != null && item.Software.Any())
{
metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Software
metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Software
.Where(s => s != null)
.Select(ConvertMachineToInternalModel)
.ToArray();
@@ -44,211 +44,211 @@ namespace SabreTools.Serialization
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.SoftwareList"/> to <cref="Models.Internal.Header"/>
/// Convert from <cref="Models.SoftwareList.SoftwareList"/> to <cref="Models.Metadata.Header"/>
/// </summary>
private static Models.Internal.Header ConvertHeaderToInternalModel(SoftwareList item)
private static Models.Metadata.Header ConvertHeaderToInternalModel(SoftwareList item)
{
var header = new Models.Internal.Header
var header = new Models.Metadata.Header
{
[Models.Internal.Header.NameKey] = item.Name,
[Models.Internal.Header.DescriptionKey] = item.Description,
[Models.Internal.Header.NotesKey] = item.Notes,
[Models.Metadata.Header.NameKey] = item.Name,
[Models.Metadata.Header.DescriptionKey] = item.Description,
[Models.Metadata.Header.NotesKey] = item.Notes,
};
return header;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.Software"/> to <cref="Models.Internal.Machine"/>
/// Convert from <cref="Models.SoftwareList.Software"/> to <cref="Models.Metadata.Machine"/>
/// </summary>
private static Models.Internal.Machine ConvertMachineToInternalModel(Software item)
private static Models.Metadata.Machine ConvertMachineToInternalModel(Software item)
{
var machine = new Models.Internal.Machine
var machine = new Models.Metadata.Machine
{
[Models.Internal.Machine.NameKey] = item.Name,
[Models.Internal.Machine.CloneOfKey] = item.CloneOf,
[Models.Internal.Machine.SupportedKey] = item.Supported,
[Models.Internal.Machine.DescriptionKey] = item.Description,
[Models.Internal.Machine.YearKey] = item.Year,
[Models.Internal.Machine.PublisherKey] = item.Publisher,
[Models.Internal.Machine.NotesKey] = item.Notes,
[Models.Metadata.Machine.NameKey] = item.Name,
[Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Models.Metadata.Machine.SupportedKey] = item.Supported,
[Models.Metadata.Machine.DescriptionKey] = item.Description,
[Models.Metadata.Machine.YearKey] = item.Year,
[Models.Metadata.Machine.PublisherKey] = item.Publisher,
[Models.Metadata.Machine.NotesKey] = item.Notes,
};
if (item.Info != null && item.Info.Any())
machine[Models.Internal.Machine.InfoKey] = item.Info.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.InfoKey] = item.Info.Select(ConvertToInternalModel).ToArray();
if (item.SharedFeat != null && item.SharedFeat.Any())
machine[Models.Internal.Machine.SharedFeatKey] = item.SharedFeat.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.SharedFeatKey] = item.SharedFeat.Select(ConvertToInternalModel).ToArray();
if (item.Part != null && item.Part.Any())
machine[Models.Internal.Machine.PartKey] = item.Part.Select(ConvertToInternalModel).ToArray();
machine[Models.Metadata.Machine.PartKey] = item.Part.Select(ConvertToInternalModel).ToArray();
return machine;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.DataArea"/> to <cref="Models.Internal.DataArea"/>
/// Convert from <cref="Models.SoftwareList.DataArea"/> to <cref="Models.Metadata.DataArea"/>
/// </summary>
private static Models.Internal.DataArea ConvertToInternalModel(DataArea item)
private static Models.Metadata.DataArea ConvertToInternalModel(DataArea item)
{
var dataArea = new Models.Internal.DataArea
var dataArea = new Models.Metadata.DataArea
{
[Models.Internal.DataArea.NameKey] = item.Name,
[Models.Internal.DataArea.SizeKey] = item.Size,
[Models.Internal.DataArea.WidthKey] = item.Width,
[Models.Internal.DataArea.EndiannessKey] = item.Endianness,
[Models.Metadata.DataArea.NameKey] = item.Name,
[Models.Metadata.DataArea.SizeKey] = item.Size,
[Models.Metadata.DataArea.WidthKey] = item.Width,
[Models.Metadata.DataArea.EndiannessKey] = item.Endianness,
};
if (item.Rom != null && item.Rom.Any())
dataArea[Models.Internal.DataArea.RomKey] = item.Rom.Select(ConvertToInternalModel).ToArray();
dataArea[Models.Metadata.DataArea.RomKey] = item.Rom.Select(ConvertToInternalModel).ToArray();
return dataArea;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.DipSwitch"/> to <cref="Models.Internal.DipSwitch"/>
/// Convert from <cref="Models.SoftwareList.DipSwitch"/> to <cref="Models.Metadata.DipSwitch"/>
/// </summary>
private static Models.Internal.DipSwitch ConvertToInternalModel(DipSwitch item)
private static Models.Metadata.DipSwitch ConvertToInternalModel(DipSwitch item)
{
var dipSwitch = new Models.Internal.DipSwitch
var dipSwitch = new Models.Metadata.DipSwitch
{
[Models.Internal.DipSwitch.NameKey] = item.Name,
[Models.Internal.DipSwitch.TagKey] = item.Tag,
[Models.Internal.DipSwitch.MaskKey] = item.Mask,
[Models.Metadata.DipSwitch.NameKey] = item.Name,
[Models.Metadata.DipSwitch.TagKey] = item.Tag,
[Models.Metadata.DipSwitch.MaskKey] = item.Mask,
};
if (item.DipValue != null && item.DipValue.Any())
dipSwitch[Models.Internal.DipSwitch.DipValueKey] = item.DipValue.Select(ConvertToInternalModel).ToArray();
dipSwitch[Models.Metadata.DipSwitch.DipValueKey] = item.DipValue.Select(ConvertToInternalModel).ToArray();
return dipSwitch;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.DipValue"/> to <cref="Models.Internal.DipValue"/>
/// Convert from <cref="Models.SoftwareList.DipValue"/> to <cref="Models.Metadata.DipValue"/>
/// </summary>
private static Models.Internal.DipValue ConvertToInternalModel(DipValue item)
private static Models.Metadata.DipValue ConvertToInternalModel(DipValue item)
{
var dipValue = new Models.Internal.DipValue
var dipValue = new Models.Metadata.DipValue
{
[Models.Internal.DipValue.NameKey] = item.Name,
[Models.Internal.DipValue.ValueKey] = item.Value,
[Models.Internal.DipValue.DefaultKey] = item.Default,
[Models.Metadata.DipValue.NameKey] = item.Name,
[Models.Metadata.DipValue.ValueKey] = item.Value,
[Models.Metadata.DipValue.DefaultKey] = item.Default,
};
return dipValue;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.Disk"/> to <cref="Models.Internal.Disk"/>
/// Convert from <cref="Models.SoftwareList.Disk"/> to <cref="Models.Metadata.Disk"/>
/// </summary>
private static Models.Internal.Disk ConvertToInternalModel(Disk item)
private static Models.Metadata.Disk ConvertToInternalModel(Disk item)
{
var disk = new Models.Internal.Disk
var disk = new Models.Metadata.Disk
{
[Models.Internal.Disk.NameKey] = item.Name,
[Models.Internal.Disk.MD5Key] = item.MD5,
[Models.Internal.Disk.SHA1Key] = item.SHA1,
[Models.Internal.Disk.StatusKey] = item.Status,
[Models.Internal.Disk.WritableKey] = item.Writeable,
[Models.Metadata.Disk.NameKey] = item.Name,
[Models.Metadata.Disk.MD5Key] = item.MD5,
[Models.Metadata.Disk.SHA1Key] = item.SHA1,
[Models.Metadata.Disk.StatusKey] = item.Status,
[Models.Metadata.Disk.WritableKey] = item.Writeable,
};
return disk;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.DiskArea"/> to <cref="Models.Internal.DiskArea"/>
/// Convert from <cref="Models.SoftwareList.DiskArea"/> to <cref="Models.Metadata.DiskArea"/>
/// </summary>
private static Models.Internal.DiskArea ConvertToInternalModel(DiskArea item)
private static Models.Metadata.DiskArea ConvertToInternalModel(DiskArea item)
{
var diskArea = new Models.Internal.DiskArea
var diskArea = new Models.Metadata.DiskArea
{
[Models.Internal.DiskArea.NameKey] = item.Name,
[Models.Metadata.DiskArea.NameKey] = item.Name,
};
if (item.Disk != null && item.Disk.Any())
diskArea[Models.Internal.DiskArea.DiskKey] = item.Disk.Select(ConvertToInternalModel).ToArray();
diskArea[Models.Metadata.DiskArea.DiskKey] = item.Disk.Select(ConvertToInternalModel).ToArray();
return diskArea;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.Feature"/> to <cref="Models.Internal.Feature"/>
/// Convert from <cref="Models.SoftwareList.Feature"/> to <cref="Models.Metadata.Feature"/>
/// </summary>
private static Models.Internal.Feature ConvertToInternalModel(Feature item)
private static Models.Metadata.Feature ConvertToInternalModel(Feature item)
{
var feature = new Models.Internal.Feature
var feature = new Models.Metadata.Feature
{
[Models.Internal.Feature.NameKey] = item.Name,
[Models.Internal.Feature.ValueKey] = item.Value,
[Models.Metadata.Feature.NameKey] = item.Name,
[Models.Metadata.Feature.ValueKey] = item.Value,
};
return feature;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.Info"/> to <cref="Models.Internal.Info"/>
/// Convert from <cref="Models.SoftwareList.Info"/> to <cref="Models.Metadata.Info"/>
/// </summary>
private static Models.Internal.Info ConvertToInternalModel(Info item)
private static Models.Metadata.Info ConvertToInternalModel(Info item)
{
var info = new Models.Internal.Info
var info = new Models.Metadata.Info
{
[Models.Internal.Info.NameKey] = item.Name,
[Models.Internal.Info.ValueKey] = item.Value,
[Models.Metadata.Info.NameKey] = item.Name,
[Models.Metadata.Info.ValueKey] = item.Value,
};
return info;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.Part"/> to <cref="Models.Internal.Part"/>
/// Convert from <cref="Models.SoftwareList.Part"/> to <cref="Models.Metadata.Part"/>
/// </summary>
private static Models.Internal.Part ConvertToInternalModel(Part item)
private static Models.Metadata.Part ConvertToInternalModel(Part item)
{
var part = new Models.Internal.Part
var part = new Models.Metadata.Part
{
[Models.Internal.Part.NameKey] = item.Name,
[Models.Internal.Part.InterfaceKey] = item.Interface,
[Models.Metadata.Part.NameKey] = item.Name,
[Models.Metadata.Part.InterfaceKey] = item.Interface,
};
if (item.Feature != null && item.Feature.Any())
part[Models.Internal.Part.FeatureKey] = item.Feature.Select(ConvertToInternalModel).ToArray();
part[Models.Metadata.Part.FeatureKey] = item.Feature.Select(ConvertToInternalModel).ToArray();
if (item.DataArea != null && item.DataArea.Any())
part[Models.Internal.Part.DataAreaKey] = item.DataArea.Select(ConvertToInternalModel).ToArray();
part[Models.Metadata.Part.DataAreaKey] = item.DataArea.Select(ConvertToInternalModel).ToArray();
if (item.DiskArea != null && item.DiskArea.Any())
part[Models.Internal.Part.DiskAreaKey] = item.DiskArea.Select(ConvertToInternalModel).ToArray();
part[Models.Metadata.Part.DiskAreaKey] = item.DiskArea.Select(ConvertToInternalModel).ToArray();
if (item.DipSwitch != null && item.DipSwitch.Any())
part[Models.Internal.Part.DipSwitchKey] = item.DipSwitch.Select(ConvertToInternalModel).ToArray();
part[Models.Metadata.Part.DipSwitchKey] = item.DipSwitch.Select(ConvertToInternalModel).ToArray();
return part;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.Rom"/> to <cref="Models.Internal.Rom"/>
/// Convert from <cref="Models.SoftwareList.Rom"/> to <cref="Models.Metadata.Rom"/>
/// </summary>
private static Models.Internal.Rom ConvertToInternalModel(Rom item)
private static Models.Metadata.Rom ConvertToInternalModel(Rom item)
{
var rom = new Models.Internal.Rom
var rom = new Models.Metadata.Rom
{
[Models.Internal.Rom.NameKey] = item.Name,
[Models.Internal.Rom.SizeKey] = item.Size,
[Models.Internal.Rom.LengthKey] = item.Length,
[Models.Internal.Rom.CRCKey] = item.CRC,
[Models.Internal.Rom.SHA1Key] = item.SHA1,
[Models.Internal.Rom.OffsetKey] = item.Offset,
[Models.Internal.Rom.ValueKey] = item.Value,
[Models.Internal.Rom.StatusKey] = item.Status,
[Models.Internal.Rom.LoadFlagKey] = item.LoadFlag,
[Models.Metadata.Rom.NameKey] = item.Name,
[Models.Metadata.Rom.SizeKey] = item.Size,
[Models.Metadata.Rom.LengthKey] = item.Length,
[Models.Metadata.Rom.CRCKey] = item.CRC,
[Models.Metadata.Rom.SHA1Key] = item.SHA1,
[Models.Metadata.Rom.OffsetKey] = item.Offset,
[Models.Metadata.Rom.ValueKey] = item.Value,
[Models.Metadata.Rom.StatusKey] = item.Status,
[Models.Metadata.Rom.LoadFlagKey] = item.LoadFlag,
};
return rom;
}
/// <summary>
/// Convert from <cref="Models.SoftwareList.SharedFeat"/> to <cref="Models.Internal.SharedFeat"/>
/// Convert from <cref="Models.SoftwareList.SharedFeat"/> to <cref="Models.Metadata.SharedFeat"/>
/// </summary>
private static Models.Internal.SharedFeat ConvertToInternalModel(SharedFeat item)
private static Models.Metadata.SharedFeat ConvertToInternalModel(SharedFeat item)
{
var sharedFeat = new Models.Internal.SharedFeat
var sharedFeat = new Models.Metadata.SharedFeat
{
[Models.Internal.SharedFeat.NameKey] = item.Name,
[Models.Internal.SharedFeat.ValueKey] = item.Value,
[Models.Metadata.SharedFeat.NameKey] = item.Name,
[Models.Metadata.SharedFeat.ValueKey] = item.Value,
};
return sharedFeat;
}