Thin out ModelBackedItem wrapper class

This commit is contained in:
Matt Nadareski
2026-03-26 13:52:00 -04:00
parent e61aec89ea
commit 8356fc5970
102 changed files with 3002 additions and 3006 deletions

View File

@@ -95,9 +95,9 @@ namespace SabreTools.Metadata.DatFiles
public void FillHeaderFromPath(string path, bool bare)
{
// Get the header strings
string? name = Header.GetStringFieldValue(Data.Models.Metadata.Header.NameKey);
string? description = Header.GetStringFieldValue(Data.Models.Metadata.Header.DescriptionKey);
string? date = Header.GetStringFieldValue(Data.Models.Metadata.Header.DateKey);
string? name = Header.ReadString(Data.Models.Metadata.Header.NameKey);
string? description = Header.ReadString(Data.Models.Metadata.Header.DescriptionKey);
string? date = Header.ReadString(Data.Models.Metadata.Header.DateKey);
// If the description is defined but not the name, set the name from the description
if (string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(description))
@@ -129,8 +129,8 @@ namespace SabreTools.Metadata.DatFiles
description = description?.Trim();
// Set the fields back
Header.SetFieldValue<string?>(Data.Models.Metadata.Header.NameKey, name);
Header.SetFieldValue<string?>(Data.Models.Metadata.Header.DescriptionKey, description);
Header.Write<string?>(Data.Models.Metadata.Header.NameKey, name);
Header.Write<string?>(Data.Models.Metadata.Header.DescriptionKey, description);
}
#endregion
@@ -503,7 +503,7 @@ namespace SabreTools.Metadata.DatFiles
if (item is Disk disk)
{
// We can only write out if there's a SHA-1
string? sha1 = disk.GetStringFieldValue(Data.Models.Metadata.Disk.SHA1Key);
string? sha1 = disk.ReadString(Data.Models.Metadata.Disk.SHA1Key);
if (!string.IsNullOrEmpty(sha1))
{
name = Utilities.GetDepotPath(sha1, Modifiers.OutputDepot.Depth)?.Replace('\\', '/');
@@ -523,7 +523,7 @@ namespace SabreTools.Metadata.DatFiles
else if (item is Media media)
{
// We can only write out if there's a SHA-1
string? sha1 = media.GetStringFieldValue(Data.Models.Metadata.Media.SHA1Key);
string? sha1 = media.ReadString(Data.Models.Metadata.Media.SHA1Key);
if (!string.IsNullOrEmpty(sha1))
{
name = Utilities.GetDepotPath(sha1, Modifiers.OutputDepot.Depth)?.Replace('\\', '/');
@@ -533,7 +533,7 @@ namespace SabreTools.Metadata.DatFiles
else if (item is Rom rom)
{
// We can only write out if there's a SHA-1
string? sha1 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA1Key);
string? sha1 = rom.ReadString(Data.Models.Metadata.Rom.SHA1Key);
if (!string.IsNullOrEmpty(sha1))
{
name = Utilities.GetDepotPath(sha1, Modifiers.OutputDepot.Depth)?.Replace('\\', '/');
@@ -581,12 +581,12 @@ namespace SabreTools.Metadata.DatFiles
protected internal static string FormatPrefixPostfix(DatItem item, Machine? machine, string fix)
{
// Initialize strings
string? type = item.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey);
string? type = item.ReadString(Data.Models.Metadata.DatItem.TypeKey);
string
game = machine?.GetName() ?? string.Empty,
manufacturer = machine?.GetStringFieldValue(Data.Models.Metadata.Machine.ManufacturerKey) ?? string.Empty,
publisher = machine?.GetStringFieldValue(Data.Models.Metadata.Machine.PublisherKey) ?? string.Empty,
category = machine?.GetStringFieldValue(Data.Models.Metadata.Machine.CategoryKey) ?? string.Empty,
manufacturer = machine?.ReadString(Data.Models.Metadata.Machine.ManufacturerKey) ?? string.Empty,
publisher = machine?.ReadString(Data.Models.Metadata.Machine.PublisherKey) ?? string.Empty,
category = machine?.ReadString(Data.Models.Metadata.Machine.CategoryKey) ?? string.Empty,
name = item.GetName() ?? type.AsItemType().AsStringValue() ?? string.Empty,
crc16 = string.Empty,
crc = string.Empty,
@@ -606,8 +606,8 @@ namespace SabreTools.Metadata.DatFiles
// Ensure we have the proper values for replacement
if (item is Disk disk)
{
md5 = disk.GetStringFieldValue(Data.Models.Metadata.Disk.MD5Key) ?? string.Empty;
sha1 = disk.GetStringFieldValue(Data.Models.Metadata.Disk.SHA1Key) ?? string.Empty;
md5 = disk.ReadString(Data.Models.Metadata.Disk.MD5Key) ?? string.Empty;
sha1 = disk.ReadString(Data.Models.Metadata.Disk.SHA1Key) ?? string.Empty;
}
else if (item is DatItems.Formats.File file)
{
@@ -620,27 +620,27 @@ namespace SabreTools.Metadata.DatFiles
}
else if (item is Media media)
{
md5 = media.GetStringFieldValue(Data.Models.Metadata.Media.MD5Key) ?? string.Empty;
sha1 = media.GetStringFieldValue(Data.Models.Metadata.Media.SHA1Key) ?? string.Empty;
sha256 = media.GetStringFieldValue(Data.Models.Metadata.Media.SHA256Key) ?? string.Empty;
spamsum = media.GetStringFieldValue(Data.Models.Metadata.Media.SpamSumKey) ?? string.Empty;
md5 = media.ReadString(Data.Models.Metadata.Media.MD5Key) ?? string.Empty;
sha1 = media.ReadString(Data.Models.Metadata.Media.SHA1Key) ?? string.Empty;
sha256 = media.ReadString(Data.Models.Metadata.Media.SHA256Key) ?? string.Empty;
spamsum = media.ReadString(Data.Models.Metadata.Media.SpamSumKey) ?? string.Empty;
}
else if (item is Rom rom)
{
crc16 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.CRC16Key) ?? string.Empty;
crc = rom.GetStringFieldValue(Data.Models.Metadata.Rom.CRCKey) ?? string.Empty;
crc64 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.CRC64Key) ?? string.Empty;
md2 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.MD2Key) ?? string.Empty;
md4 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.MD4Key) ?? string.Empty;
md5 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.MD5Key) ?? string.Empty;
ripemd128 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.RIPEMD128Key) ?? string.Empty;
ripemd160 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.RIPEMD160Key) ?? string.Empty;
sha1 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA1Key) ?? string.Empty;
sha256 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA256Key) ?? string.Empty;
sha384 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA384Key) ?? string.Empty;
sha512 = rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA512Key) ?? string.Empty;
size = rom.GetInt64FieldValue(Data.Models.Metadata.Rom.SizeKey).ToString() ?? string.Empty;
spamsum = rom.GetStringFieldValue(Data.Models.Metadata.Rom.SpamSumKey) ?? string.Empty;
crc16 = rom.ReadString(Data.Models.Metadata.Rom.CRC16Key) ?? string.Empty;
crc = rom.ReadString(Data.Models.Metadata.Rom.CRCKey) ?? string.Empty;
crc64 = rom.ReadString(Data.Models.Metadata.Rom.CRC64Key) ?? string.Empty;
md2 = rom.ReadString(Data.Models.Metadata.Rom.MD2Key) ?? string.Empty;
md4 = rom.ReadString(Data.Models.Metadata.Rom.MD4Key) ?? string.Empty;
md5 = rom.ReadString(Data.Models.Metadata.Rom.MD5Key) ?? string.Empty;
ripemd128 = rom.ReadString(Data.Models.Metadata.Rom.RIPEMD128Key) ?? string.Empty;
ripemd160 = rom.ReadString(Data.Models.Metadata.Rom.RIPEMD160Key) ?? string.Empty;
sha1 = rom.ReadString(Data.Models.Metadata.Rom.SHA1Key) ?? string.Empty;
sha256 = rom.ReadString(Data.Models.Metadata.Rom.SHA256Key) ?? string.Empty;
sha384 = rom.ReadString(Data.Models.Metadata.Rom.SHA384Key) ?? string.Empty;
sha512 = rom.ReadString(Data.Models.Metadata.Rom.SHA512Key) ?? string.Empty;
size = rom.ReadLong(Data.Models.Metadata.Rom.SizeKey).ToString() ?? string.Empty;
spamsum = rom.ReadString(Data.Models.Metadata.Rom.SpamSumKey) ?? string.Empty;
}
// Now do bulk replacement where possible
@@ -681,42 +681,42 @@ namespace SabreTools.Metadata.DatFiles
return item;
// If the item has a size
if (rom.GetInt64FieldValue(Data.Models.Metadata.Rom.SizeKey) is not null)
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is not null)
return rom;
// If the item CRC isn't "null"
if (rom.GetStringFieldValue(Data.Models.Metadata.Rom.CRCKey) != "null")
if (rom.ReadString(Data.Models.Metadata.Rom.CRCKey) != "null")
return rom;
// If the Rom has "null" characteristics, ensure all fields
rom.SetName(rom.GetName() == "null" ? "-" : rom.GetName());
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.SizeKey, "0");
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.CRC16Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.CRC16Key) == "null" ? HashType.CRC16.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.CRCKey,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.CRCKey) == "null" ? HashType.CRC32.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.CRC64Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.CRC64Key) == "null" ? HashType.CRC64.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.MD2Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.MD2Key) == "null" ? HashType.MD2.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.MD4Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.MD4Key) == "null" ? HashType.MD4.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.MD5Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.MD5Key) == "null" ? HashType.MD5.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.RIPEMD128Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.RIPEMD128Key) == "null" ? HashType.RIPEMD128.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.RIPEMD160Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.RIPEMD160Key) == "null" ? HashType.RIPEMD160.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.SHA1Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA1Key) == "null" ? HashType.SHA1.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.SHA256Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA256Key) == "null" ? HashType.SHA256.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.SHA384Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA384Key) == "null" ? HashType.SHA384.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.SHA512Key,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.SHA512Key) == "null" ? HashType.SHA512.ZeroString : null);
rom.SetFieldValue<string?>(Data.Models.Metadata.Rom.SpamSumKey,
rom.GetStringFieldValue(Data.Models.Metadata.Rom.SpamSumKey) == "null" ? HashType.SpamSum.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.SizeKey, "0");
rom.Write<string?>(Data.Models.Metadata.Rom.CRC16Key,
rom.ReadString(Data.Models.Metadata.Rom.CRC16Key) == "null" ? HashType.CRC16.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.CRCKey,
rom.ReadString(Data.Models.Metadata.Rom.CRCKey) == "null" ? HashType.CRC32.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.CRC64Key,
rom.ReadString(Data.Models.Metadata.Rom.CRC64Key) == "null" ? HashType.CRC64.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.MD2Key,
rom.ReadString(Data.Models.Metadata.Rom.MD2Key) == "null" ? HashType.MD2.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.MD4Key,
rom.ReadString(Data.Models.Metadata.Rom.MD4Key) == "null" ? HashType.MD4.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.MD5Key,
rom.ReadString(Data.Models.Metadata.Rom.MD5Key) == "null" ? HashType.MD5.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.RIPEMD128Key,
rom.ReadString(Data.Models.Metadata.Rom.RIPEMD128Key) == "null" ? HashType.RIPEMD128.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.RIPEMD160Key,
rom.ReadString(Data.Models.Metadata.Rom.RIPEMD160Key) == "null" ? HashType.RIPEMD160.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key,
rom.ReadString(Data.Models.Metadata.Rom.SHA1Key) == "null" ? HashType.SHA1.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.SHA256Key,
rom.ReadString(Data.Models.Metadata.Rom.SHA256Key) == "null" ? HashType.SHA256.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.SHA384Key,
rom.ReadString(Data.Models.Metadata.Rom.SHA384Key) == "null" ? HashType.SHA384.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.SHA512Key,
rom.ReadString(Data.Models.Metadata.Rom.SHA512Key) == "null" ? HashType.SHA512.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.SpamSumKey,
rom.ReadString(Data.Models.Metadata.Rom.SpamSumKey) == "null" ? HashType.SpamSum.ZeroString : null);
return rom;
}
@@ -741,7 +741,7 @@ namespace SabreTools.Metadata.DatFiles
foreach (DatItem datItem in datItems)
{
ItemType itemType = datItem.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
ItemType itemType = datItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
if (Array.Exists(SupportedTypes, t => t == itemType))
return true;
}
@@ -800,12 +800,12 @@ namespace SabreTools.Metadata.DatFiles
// Get the last item name, if applicable
string lastItemName = lastItem.GetName()
?? lastItem.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? lastItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? string.Empty;
// Get the current item name, if applicable
string datItemName = datItem.GetName()
?? datItem.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? datItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? string.Empty;
// If the current item exactly matches the last item, then we don't add it
@@ -897,12 +897,12 @@ namespace SabreTools.Metadata.DatFiles
// Get the last item name, if applicable
string lastItemName = lastItem.Value.Value.GetName()
?? lastItem.Value.Value.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? lastItem.Value.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? string.Empty;
// Get the current item name, if applicable
string datItemName = datItem.Value.GetName()
?? datItem.Value.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? datItem.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
?? string.Empty;
// Get sources for both items
@@ -980,7 +980,7 @@ namespace SabreTools.Metadata.DatFiles
}
// If the item is supposed to be removed, we ignore
if (datItem.GetBoolFieldValue(DatItem.RemoveKey) == true)
if (datItem.ReadBool(DatItem.RemoveKey) == true)
{
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
_logger.Verbose($"Item '{itemString}' was skipped because it was marked for removal");
@@ -999,7 +999,7 @@ namespace SabreTools.Metadata.DatFiles
if (ignoreBlanks && datItem is Rom rom)
{
// If we have a 0-size or blank rom, then we ignore
long? size = rom.GetInt64FieldValue(Data.Models.Metadata.Rom.SizeKey);
long? size = rom.ReadLong(Data.Models.Metadata.Rom.SizeKey);
if (size == 0 || size is null)
{
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
@@ -1009,7 +1009,7 @@ namespace SabreTools.Metadata.DatFiles
}
// If we have an item type not in the list of supported values
ItemType itemType = datItem.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
ItemType itemType = datItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
if (!Array.Exists(SupportedTypes, t => t == itemType))
{
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
@@ -1038,11 +1038,11 @@ namespace SabreTools.Metadata.DatFiles
/// </summary>
private static string GetDuplicateSuffix(Disk datItem)
{
string? md5 = datItem.GetStringFieldValue(Data.Models.Metadata.Disk.MD5Key);
string? md5 = datItem.ReadString(Data.Models.Metadata.Disk.MD5Key);
if (!string.IsNullOrEmpty(md5))
return $"_{md5}";
string? sha1 = datItem.GetStringFieldValue(Data.Models.Metadata.Disk.SHA1Key);
string? sha1 = datItem.ReadString(Data.Models.Metadata.Disk.SHA1Key);
if (!string.IsNullOrEmpty(sha1))
return $"_{sha1}";
@@ -1072,19 +1072,19 @@ namespace SabreTools.Metadata.DatFiles
/// </summary>
private static string GetDuplicateSuffix(Media datItem)
{
string? md5 = datItem.GetStringFieldValue(Data.Models.Metadata.Media.MD5Key);
string? md5 = datItem.ReadString(Data.Models.Metadata.Media.MD5Key);
if (!string.IsNullOrEmpty(md5))
return $"_{md5}";
string? sha1 = datItem.GetStringFieldValue(Data.Models.Metadata.Media.SHA1Key);
string? sha1 = datItem.ReadString(Data.Models.Metadata.Media.SHA1Key);
if (!string.IsNullOrEmpty(sha1))
return $"_{sha1}";
string? sha256 = datItem.GetStringFieldValue(Data.Models.Metadata.Media.SHA256Key);
string? sha256 = datItem.ReadString(Data.Models.Metadata.Media.SHA256Key);
if (!string.IsNullOrEmpty(sha256))
return $"_{sha256}";
string? spamSum = datItem.GetStringFieldValue(Data.Models.Metadata.Media.SpamSumKey);
string? spamSum = datItem.ReadString(Data.Models.Metadata.Media.SpamSumKey);
if (!string.IsNullOrEmpty(spamSum))
return $"_{spamSum}";
@@ -1096,55 +1096,55 @@ namespace SabreTools.Metadata.DatFiles
/// </summary>
private static string GetDuplicateSuffix(Rom datItem)
{
string? crc16 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.CRC16Key);
string? crc16 = datItem.ReadString(Data.Models.Metadata.Rom.CRC16Key);
if (!string.IsNullOrEmpty(crc16))
return $"_{crc16}";
string? crc = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.CRCKey);
string? crc = datItem.ReadString(Data.Models.Metadata.Rom.CRCKey);
if (!string.IsNullOrEmpty(crc))
return $"_{crc}";
string? crc64 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.CRC64Key);
string? crc64 = datItem.ReadString(Data.Models.Metadata.Rom.CRC64Key);
if (!string.IsNullOrEmpty(crc64))
return $"_{crc64}";
string? md2 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.MD2Key);
string? md2 = datItem.ReadString(Data.Models.Metadata.Rom.MD2Key);
if (!string.IsNullOrEmpty(md2))
return $"_{md2}";
string? md4 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.MD4Key);
string? md4 = datItem.ReadString(Data.Models.Metadata.Rom.MD4Key);
if (!string.IsNullOrEmpty(md4))
return $"_{md4}";
string? md5 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.MD5Key);
string? md5 = datItem.ReadString(Data.Models.Metadata.Rom.MD5Key);
if (!string.IsNullOrEmpty(md5))
return $"_{md5}";
string? ripemd128 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.RIPEMD128Key);
string? ripemd128 = datItem.ReadString(Data.Models.Metadata.Rom.RIPEMD128Key);
if (!string.IsNullOrEmpty(ripemd128))
return $"_{ripemd128}";
string? ripemd160 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.RIPEMD160Key);
string? ripemd160 = datItem.ReadString(Data.Models.Metadata.Rom.RIPEMD160Key);
if (!string.IsNullOrEmpty(ripemd160))
return $"_{ripemd160}";
string? sha1 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.SHA1Key);
string? sha1 = datItem.ReadString(Data.Models.Metadata.Rom.SHA1Key);
if (!string.IsNullOrEmpty(sha1))
return $"_{sha1}";
string? sha256 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.SHA256Key);
string? sha256 = datItem.ReadString(Data.Models.Metadata.Rom.SHA256Key);
if (!string.IsNullOrEmpty(sha256))
return $"_{sha256}";
string? sha384 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.SHA384Key);
string? sha384 = datItem.ReadString(Data.Models.Metadata.Rom.SHA384Key);
if (!string.IsNullOrEmpty(sha384))
return $"_{sha384}";
string? sha512 = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.SHA512Key);
string? sha512 = datItem.ReadString(Data.Models.Metadata.Rom.SHA512Key);
if (!string.IsNullOrEmpty(sha512))
return $"_{sha512}";
string? spamSum = datItem.GetStringFieldValue(Data.Models.Metadata.Rom.SpamSumKey);
string? spamSum = datItem.ReadString(Data.Models.Metadata.Rom.SpamSumKey);
if (!string.IsNullOrEmpty(spamSum))
return $"_{spamSum}";
@@ -1169,8 +1169,8 @@ namespace SabreTools.Metadata.DatFiles
// Compare on source if renaming
if (!norename)
{
int xSourceIndex = x.GetFieldValue<Source?>(DatItem.SourceKey)?.Index ?? 0;
int ySourceIndex = y.GetFieldValue<Source?>(DatItem.SourceKey)?.Index ?? 0;
int xSourceIndex = x.Read<Source?>(DatItem.SourceKey)?.Index ?? 0;
int ySourceIndex = y.Read<Source?>(DatItem.SourceKey)?.Index ?? 0;
if (xSourceIndex != ySourceIndex)
return xSourceIndex - ySourceIndex;
}
@@ -1182,8 +1182,8 @@ namespace SabreTools.Metadata.DatFiles
return nc.Compare(xMachineName, yMachineName);
// If types don't match
string? xType = x.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey);
string? yType = y.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey);
string? xType = x.ReadString(Data.Models.Metadata.DatItem.TypeKey);
string? yType = y.ReadString(Data.Models.Metadata.DatItem.TypeKey);
if (xType != yType)
return xType.AsItemType() - yType.AsItemType();
@@ -1239,8 +1239,8 @@ namespace SabreTools.Metadata.DatFiles
return nc.Compare(xMachineName, yMachineName);
// If types don't match
string? xType = x.Value.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey);
string? yType = y.Value.GetStringFieldValue(Data.Models.Metadata.DatItem.TypeKey);
string? xType = x.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey);
string? yType = y.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey);
if (xType != yType)
return xType.AsItemType() - yType.AsItemType();