mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Consolidate shared ProcessNullifiedItem functionality
This commit is contained in:
@@ -527,6 +527,39 @@ namespace SabreTools.DatFiles
|
|||||||
if (machine == null)
|
if (machine == null)
|
||||||
return item;
|
return item;
|
||||||
|
|
||||||
|
// Process the possibly nullified item
|
||||||
|
return ProcessNullifiedItemImpl(rom, machine);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Process any DatItems that are "null", usually created from directory population
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item">DatItem to check for "null" status</param>
|
||||||
|
/// <returns>Cleaned DatItem</returns>
|
||||||
|
protected KeyValuePair<long, DatItem> ProcessNullifiedItemDB(KeyValuePair<long, DatItem> item)
|
||||||
|
{
|
||||||
|
// If we don't have a Rom, we can ignore it
|
||||||
|
if (item.Value is not Rom rom)
|
||||||
|
return item;
|
||||||
|
|
||||||
|
// Get machine for the item
|
||||||
|
var machine = ItemsDB.GetMachineForItem(item.Key);
|
||||||
|
if (machine.Value == null)
|
||||||
|
return item;
|
||||||
|
|
||||||
|
// Process the possibly nullified item
|
||||||
|
return new KeyValuePair<long, DatItem>(item.Key, ProcessNullifiedItemImpl(rom, machine.Value));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Process any DatItems that are "null", usually created from directory population
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="rom">Rom to check for "null" status</param>
|
||||||
|
/// <param name="machine">Machine for logging</param>
|
||||||
|
/// <returns>Cleaned DatItem</returns>
|
||||||
|
/// TODO: Investigate what the machine name is really being used for
|
||||||
|
private DatItem ProcessNullifiedItemImpl(Rom rom, Machine machine)
|
||||||
|
{
|
||||||
// If the Rom has "null" characteristics, ensure all fields
|
// If the Rom has "null" characteristics, ensure all fields
|
||||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null
|
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null
|
||||||
&& rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null")
|
&& rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null")
|
||||||
@@ -558,54 +591,6 @@ namespace SabreTools.DatFiles
|
|||||||
return rom;
|
return rom;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Process any DatItems that are "null", usually created from directory population
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="item">DatItem to check for "null" status</param>
|
|
||||||
/// <returns>Cleaned DatItem</returns>
|
|
||||||
protected KeyValuePair<long, DatItem> ProcessNullifiedItemDB(KeyValuePair<long, DatItem> item)
|
|
||||||
{
|
|
||||||
// If we don't have a Rom, we can ignore it
|
|
||||||
if (item.Value is not Rom rom)
|
|
||||||
return item;
|
|
||||||
|
|
||||||
// Get machine for the item
|
|
||||||
var machine = ItemsDB.GetMachineForItem(item.Key);
|
|
||||||
var machineObj = machine.Value;
|
|
||||||
if (machineObj == null)
|
|
||||||
return item;
|
|
||||||
|
|
||||||
// If the Rom has "null" characteristics, ensure all fields
|
|
||||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null
|
|
||||||
&& rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null")
|
|
||||||
{
|
|
||||||
_logger.Verbose($"Empty folder found: {machineObj.GetStringFieldValue(Models.Metadata.Machine.NameKey)}");
|
|
||||||
|
|
||||||
rom.SetName(rom.GetName() == "null" ? "-" : rom.GetName());
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null" ? ZeroHash.CRC32Str : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key) == "null" ? ZeroHash.GetString(HashType.MD2) : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key) == "null" ? ZeroHash.GetString(HashType.MD4) : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) == "null" ? ZeroHash.MD5Str : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) == "null" ? ZeroHash.SHA1Str : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key) == "null" ? ZeroHash.SHA256Str : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA384Key,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key) == "null" ? ZeroHash.SHA384Str : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key) == "null" ? ZeroHash.SHA512Str : null);
|
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey,
|
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey) == "null" ? ZeroHash.SpamSumStr : null);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new KeyValuePair<long, DatItem>(item.Key, rom);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Return list of required fields missing from a DatItem
|
/// Return list of required fields missing from a DatItem
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user