diff --git a/CrossModel/SeparatedValue.Deserializer.cs b/CrossModel/SeparatedValue.Deserializer.cs
index 129839c1..563abab4 100644
--- a/CrossModel/SeparatedValue.Deserializer.cs
+++ b/CrossModel/SeparatedValue.Deserializer.cs
@@ -21,7 +21,7 @@ namespace SabreTools.Serialization.CrossModel
{
metadataFile.Row = machines
.Where(m => m != null)
- .SelectMany(ConvertMachineFromInternalModel)
+ .SelectMany(m => ConvertMachineFromInternalModel(m, header))
.ToArray();
}
@@ -43,7 +43,7 @@ namespace SabreTools.Serialization.CrossModel
///
/// Convert from to an array of
///
- private static Row[] ConvertMachineFromInternalModel(Models.Metadata.Machine item)
+ private static Row[] ConvertMachineFromInternalModel(Models.Metadata.Machine item, Models.Metadata.Header? header)
{
var rowItems = new List();
@@ -52,7 +52,7 @@ namespace SabreTools.Serialization.CrossModel
{
rowItems.AddRange(roms
.Where(r => r != null)
- .Select(rom => ConvertFromInternalModel(rom, item)));
+ .Select(rom => ConvertFromInternalModel(rom, item, header)));
}
var disks = item.Read(Models.Metadata.Machine.DiskKey);
@@ -60,7 +60,7 @@ namespace SabreTools.Serialization.CrossModel
{
rowItems.AddRange(disks
.Where(d => d != null)
- .Select(disk => ConvertFromInternalModel(disk, item)));
+ .Select(disk => ConvertFromInternalModel(disk, item, header)));
}
var media = item.Read(Models.Metadata.Machine.MediaKey);
@@ -68,7 +68,7 @@ namespace SabreTools.Serialization.CrossModel
{
rowItems.AddRange(media
.Where(m => m != null)
- .Select(medium => ConvertFromInternalModel(medium, item)));
+ .Select(medium => ConvertFromInternalModel(medium, item, header)));
}
return rowItems.ToArray();
@@ -77,16 +77,26 @@ namespace SabreTools.Serialization.CrossModel
///
/// Convert from to
///
- private static Row ConvertFromInternalModel(Models.Metadata.Disk item, Models.Metadata.Machine parent)
+ private static Row ConvertFromInternalModel(Models.Metadata.Disk item, Models.Metadata.Machine parent, Models.Metadata.Header? header)
{
var row = new Row
{
+ FileName = header?.ReadString("FILENAME"), // TODO: Make this an actual key to retrieve
+ InternalName = header?.ReadString(Models.Metadata.Header.NameKey),
+ Description = header?.ReadString(Models.Metadata.Header.DescriptionKey),
GameName = parent.ReadString(Models.Metadata.Machine.NameKey),
- Description = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
+ GameDescription = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
Type = "disk",
+ RomName = null,
DiskName = item.ReadString(Models.Metadata.Disk.NameKey),
+ Size = null,
+ CRC = null,
MD5 = item.ReadString(Models.Metadata.Disk.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Disk.SHA1Key),
+ SHA256 = null,
+ SHA384 = null,
+ SHA512 = null,
+ SpamSum = null,
Status = item.ReadString(Models.Metadata.Disk.StatusKey),
};
return row;
@@ -95,17 +105,25 @@ namespace SabreTools.Serialization.CrossModel
///
/// Convert from to
///
- private static Row ConvertFromInternalModel(Models.Metadata.Media item, Models.Metadata.Machine parent)
+ private static Row ConvertFromInternalModel(Models.Metadata.Media item, Models.Metadata.Machine parent, Models.Metadata.Header? header)
{
var row = new Row
{
+ FileName = header?.ReadString("FILENAME"), // TODO: Make this an actual key to retrieve
+ InternalName = header?.ReadString(Models.Metadata.Header.NameKey),
+ Description = header?.ReadString(Models.Metadata.Header.DescriptionKey),
GameName = parent.ReadString(Models.Metadata.Machine.NameKey),
- Description = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
+ GameDescription = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
Type = "media",
+ RomName = null,
DiskName = item.ReadString(Models.Metadata.Media.NameKey),
+ Size = null,
+ CRC = null,
MD5 = item.ReadString(Models.Metadata.Media.MD5Key),
SHA1 = item.ReadString(Models.Metadata.Media.SHA1Key),
SHA256 = item.ReadString(Models.Metadata.Media.SHA256Key),
+ SHA384 = null,
+ SHA512 = null,
SpamSum = item.ReadString(Models.Metadata.Media.SpamSumKey),
};
return row;
@@ -114,14 +132,18 @@ namespace SabreTools.Serialization.CrossModel
///
/// Convert from to
///
- private static Row ConvertFromInternalModel(Models.Metadata.Rom item, Models.Metadata.Machine parent)
+ private static Row ConvertFromInternalModel(Models.Metadata.Rom item, Models.Metadata.Machine parent, Models.Metadata.Header? header)
{
var row = new Row
{
- GameName = parent?.ReadString(Models.Metadata.Machine.NameKey),
- Description = parent?.ReadString(Models.Metadata.Machine.DescriptionKey),
+ FileName = header?.ReadString("FILENAME"), // TODO: Make this an actual key to retrieve
+ InternalName = header?.ReadString(Models.Metadata.Header.NameKey),
+ Description = header?.ReadString(Models.Metadata.Header.DescriptionKey),
+ GameName = parent.ReadString(Models.Metadata.Machine.NameKey),
+ GameDescription = parent.ReadString(Models.Metadata.Machine.DescriptionKey),
Type = "rom",
RomName = item.ReadString(Models.Metadata.Rom.NameKey),
+ DiskName = null,
Size = item.ReadString(Models.Metadata.Rom.SizeKey),
CRC = item.ReadString(Models.Metadata.Rom.CRCKey),
MD5 = item.ReadString(Models.Metadata.Rom.MD5Key),