mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Fix SizeKey issues, convert CMP to serialization
This commit is contained in:
@@ -45,6 +45,14 @@ namespace SabreTools.DatFiles
|
|||||||
// Create an internal header
|
// Create an internal header
|
||||||
var header = Header.GetInternalClone();
|
var header = Header.GetInternalClone();
|
||||||
|
|
||||||
|
// Remove fields with default values
|
||||||
|
if (header.Read<Core.MergingFlag>(Models.Metadata.Header.ForceMergingKey) == Core.MergingFlag.None)
|
||||||
|
header.Remove(Models.Metadata.Header.ForceMergingKey);
|
||||||
|
if (header.Read<Core.NodumpFlag>(Models.Metadata.Header.ForceNodumpKey) == Core.NodumpFlag.None)
|
||||||
|
header.Remove(Models.Metadata.Header.ForceNodumpKey);
|
||||||
|
if (header.Read<Core.PackingFlag>(Models.Metadata.Header.ForcePackingKey) == Core.PackingFlag.None)
|
||||||
|
header.Remove(Models.Metadata.Header.ForcePackingKey);
|
||||||
|
|
||||||
// Convert subheader values
|
// Convert subheader values
|
||||||
if (Header.CanOpenSpecified)
|
if (Header.CanOpenSpecified)
|
||||||
header[Models.Metadata.Header.CanOpenKey] = Header.GetFieldValue<Models.OfflineList.CanOpen[]?>(Models.Metadata.Header.CanOpenKey);
|
header[Models.Metadata.Header.CanOpenKey] = Header.GetFieldValue<Models.OfflineList.CanOpen[]?>(Models.Metadata.Header.CanOpenKey);
|
||||||
|
|||||||
@@ -246,19 +246,21 @@ namespace SabreTools.DatFiles
|
|||||||
}
|
}
|
||||||
else if (item is Rom rom)
|
else if (item is Rom rom)
|
||||||
{
|
{
|
||||||
|
long? size = NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey));
|
||||||
|
|
||||||
// If we have the case where there is SHA-1 and nothing else, we don't fill in any other part of the data
|
// If we have the case where there is SHA-1 and nothing else, we don't fill in any other part of the data
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null && !rom.HasHashes())
|
if (size == null && !rom.HasHashes())
|
||||||
{
|
{
|
||||||
// No-op, just catch it so it doesn't go further
|
// No-op, just catch it so it doesn't go further
|
||||||
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Entry with only SHA-1 found - '{rom.GetName()}'");
|
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Entry with only SHA-1 found - '{rom.GetName()}'");
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info
|
// If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info
|
||||||
else if ((rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == 0 || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null)
|
else if ((size == 0 || size == null)
|
||||||
&& (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) || rom.HasZeroHash()))
|
&& (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) || rom.HasZeroHash()))
|
||||||
{
|
{
|
||||||
// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually
|
// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually
|
||||||
rom.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, Constants.CRCZero);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, Constants.CRCZero);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, Constants.MD5Zero);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, Constants.MD5Zero);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, Constants.SHA1Zero);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, Constants.SHA1Zero);
|
||||||
@@ -269,7 +271,7 @@ namespace SabreTools.DatFiles
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If the file has no size and it's not the above case, skip and log
|
// If the file has no size and it's not the above case, skip and log
|
||||||
else if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump && (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == 0 || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null))
|
else if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump && (size == 0 || size == null))
|
||||||
{
|
{
|
||||||
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
||||||
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.Nodump);
|
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.Nodump);
|
||||||
@@ -277,7 +279,7 @@ namespace SabreTools.DatFiles
|
|||||||
|
|
||||||
// If the file has a size but aboslutely no hashes, skip and log
|
// If the file has a size but aboslutely no hashes, skip and log
|
||||||
else if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump
|
else if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump
|
||||||
&& rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) != null && rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) > 0
|
&& size != null && size > 0
|
||||||
&& !rom.HasHashes())
|
&& !rom.HasHashes())
|
||||||
{
|
{
|
||||||
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
||||||
@@ -406,7 +408,7 @@ namespace SabreTools.DatFiles
|
|||||||
sha256 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key) ?? string.Empty;
|
sha256 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key) ?? string.Empty;
|
||||||
sha384 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key) ?? string.Empty;
|
sha384 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key) ?? string.Empty;
|
||||||
sha512 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key) ?? string.Empty;
|
sha512 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key) ?? string.Empty;
|
||||||
size = rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString() ?? string.Empty;
|
size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey) ?? string.Empty;
|
||||||
spamsum = rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey) ?? string.Empty;
|
spamsum = rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey) ?? string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,7 +542,7 @@ namespace SabreTools.DatFiles
|
|||||||
logger.Verbose($"Empty folder found: {datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}");
|
logger.Verbose($"Empty folder found: {datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}");
|
||||||
|
|
||||||
rom.SetName(rom.GetName() == "null" ? "-" : rom.GetName());
|
rom.SetName(rom.GetName() == "null" ? "-" : rom.GetName());
|
||||||
rom.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey) == "null" ? Constants.CRCZero : null);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey) == "null" ? Constants.CRCZero : null);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key) == "null" ? Constants.MD5Zero : null);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key) == "null" ? Constants.MD5Zero : null);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key) == "null" ? Constants.SHA1Zero : null);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key) == "null" ? Constants.SHA1Zero : null);
|
||||||
@@ -624,7 +626,8 @@ namespace SabreTools.DatFiles
|
|||||||
if (ignoreBlanks && datItem is Rom rom)
|
if (ignoreBlanks && datItem is Rom rom)
|
||||||
{
|
{
|
||||||
// If we have a 0-size or blank rom, then we ignore
|
// If we have a 0-size or blank rom, then we ignore
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == 0 || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null)
|
long? size = NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey));
|
||||||
|
if (size == 0 || size == null)
|
||||||
{
|
{
|
||||||
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
|
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
|
||||||
logger?.Verbose($"Item '{itemString}' was skipped because it had an invalid size");
|
logger?.Verbose($"Item '{itemString}' was skipped because it had an invalid size");
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (string.IsNullOrEmpty(rom.GetName()))
|
if (string.IsNullOrEmpty(rom.GetName()))
|
||||||
missingFields.Add(Models.Metadata.Rom.NameKey);
|
missingFields.Add(Models.Metadata.Rom.NameKey);
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) < 0)
|
if (rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
||||||
@@ -140,7 +140,11 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
{
|
{
|
||||||
logger.User($"Writing to '{outfile}'...");
|
logger.User($"Writing to '{outfile}'...");
|
||||||
|
|
||||||
var metadataFile = CreateMetadataFile(ignoreblanks);
|
//var metadataFile = CreateMetadataFile(ignoreblanks);
|
||||||
|
|
||||||
|
// Serialize the input file
|
||||||
|
var metadata = ConvertMetadata(ignoreblanks);
|
||||||
|
var metadataFile = new Serialization.CrossModel.ClrMamePro().Deserialize(metadata);
|
||||||
if (!(new Serialization.Files.ClrMamePro().Serialize(metadataFile, outfile, Quotes)))
|
if (!(new Serialization.Files.ClrMamePro().Serialize(metadataFile, outfile, Quotes)))
|
||||||
{
|
{
|
||||||
logger.Warning($"File '{outfile}' could not be written! See the log for more details.");
|
logger.Warning($"File '{outfile}' could not be written! See the log for more details.");
|
||||||
@@ -370,7 +374,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
var rom = new Models.ClrMamePro.Rom
|
var rom = new Models.ClrMamePro.Rom
|
||||||
{
|
{
|
||||||
Name = item.GetName(),
|
Name = item.GetName(),
|
||||||
Size = item.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
MD5 = item.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using SabreTools.Core;
|
using SabreTools.Core;
|
||||||
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
switch (datItem)
|
switch (datItem)
|
||||||
{
|
{
|
||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null)
|
if (rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
// if (string.IsNullOrEmpty(rom.Date))
|
// if (string.IsNullOrEmpty(rom.Date))
|
||||||
// missingFields.Add(Models.Metadata.Rom.DateKey);
|
// missingFields.Add(Models.Metadata.Rom.DateKey);
|
||||||
@@ -179,7 +180,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
var rom = new Models.DosCenter.File
|
var rom = new Models.DosCenter.File
|
||||||
{
|
{
|
||||||
Name = item.GetName(),
|
Name = item.GetName(),
|
||||||
Size = item.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
Date = item.GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
Date = item.GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
MD5 = rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
MD5 = rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||||
CRC32 = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC32 = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
Size = rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
};
|
};
|
||||||
return row;
|
return row;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
rom.SetName(row.Name);
|
rom.SetName(row.Name);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, row.CRC);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, row.CRC);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, row.SHA1);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, row.SHA1);
|
||||||
rom.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, NumberHelper.ConvertToInt64(row.Size));
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, NumberHelper.ConvertToInt64(row.Size).ToString());
|
||||||
rom.SetFieldValue<Source?>(DatItem.SourceKey, new Source { Index = indexId, Name = filename });
|
rom.SetFieldValue<Source?>(DatItem.SourceKey, new Source { Index = indexId, Name = filename });
|
||||||
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.None);
|
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.None);
|
||||||
|
|
||||||
@@ -190,7 +190,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
rom.SetName(row.Name);
|
rom.SetName(row.Name);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, row.CRC);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, row.CRC);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, row.SHA1);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, row.SHA1);
|
||||||
rom.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, NumberHelper.ConvertToInt64(row.Size));
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, NumberHelper.ConvertToInt64(row.Size).ToString());
|
||||||
rom.SetFieldValue<Source?>(DatItem.SourceKey, new Source { Index = indexId, Name = filename });
|
rom.SetFieldValue<Source?>(DatItem.SourceKey, new Source { Index = indexId, Name = filename });
|
||||||
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.BadDump);
|
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.BadDump);
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
rom.SetName(row.Name);
|
rom.SetName(row.Name);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, null);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, null);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, null);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, null);
|
||||||
rom.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, NumberHelper.ConvertToInt64(row.Size));
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, NumberHelper.ConvertToInt64(row.Size).ToString());
|
||||||
rom.SetFieldValue<Source?>(DatItem.SourceKey, new Source { Index = indexId, Name = filename });
|
rom.SetFieldValue<Source?>(DatItem.SourceKey, new Source { Index = indexId, Name = filename });
|
||||||
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.Nodump);
|
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.Nodump);
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using SabreTools.Core;
|
using SabreTools.Core;
|
||||||
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
|
|
||||||
@@ -42,7 +43,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) < 0)
|
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||||
@@ -214,7 +215,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
return new Models.Listrom.Row
|
return new Models.Listrom.Row
|
||||||
{
|
{
|
||||||
Name = rom.GetName(),
|
Name = rom.GetName(),
|
||||||
Size = rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
NoGoodDumpKnown = true,
|
NoGoodDumpKnown = true,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -223,7 +224,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
return new Models.Listrom.Row
|
return new Models.Listrom.Row
|
||||||
{
|
{
|
||||||
Name = rom.GetName(),
|
Name = rom.GetName(),
|
||||||
Size = rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
Bad = true,
|
Bad = true,
|
||||||
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
@@ -234,7 +235,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
return new Models.Listrom.Row
|
return new Models.Listrom.Row
|
||||||
{
|
{
|
||||||
Name = rom.GetName(),
|
Name = rom.GetName(),
|
||||||
Size = rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (string.IsNullOrEmpty(rom.GetName()))
|
if (string.IsNullOrEmpty(rom.GetName()))
|
||||||
missingFields.Add(Models.Metadata.Rom.NameKey);
|
missingFields.Add(Models.Metadata.Rom.NameKey);
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) < 0)
|
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)))
|
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)))
|
||||||
@@ -420,7 +420,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
{
|
{
|
||||||
Name = item.GetName(),
|
Name = item.GetName(),
|
||||||
Bios = item.GetFieldValue<string?>(Models.Metadata.Rom.BiosKey),
|
Bios = item.GetFieldValue<string?>(Models.Metadata.Rom.BiosKey),
|
||||||
Size = item.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
Merge = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
Merge = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (string.IsNullOrEmpty(rom.GetName()))
|
if (string.IsNullOrEmpty(rom.GetName()))
|
||||||
missingFields.Add(Models.Metadata.Rom.NameKey);
|
missingFields.Add(Models.Metadata.Rom.NameKey);
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) < 0)
|
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
||||||
@@ -508,7 +508,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
var rom = new Models.Logiqx.Rom
|
var rom = new Models.Logiqx.Rom
|
||||||
{
|
{
|
||||||
Name = item.GetName(),
|
Name = item.GetName(),
|
||||||
Size = item.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
MD5 = item.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using SabreTools.Core;
|
using SabreTools.Core;
|
||||||
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
switch (datItem)
|
switch (datItem)
|
||||||
{
|
{
|
||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) < 0)
|
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using SabreTools.Core;
|
using SabreTools.Core;
|
||||||
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
|
|
||||||
@@ -35,7 +36,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null)
|
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -189,7 +190,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
GameDescription = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
GameDescription = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||||
RomName = item.GetName(),
|
RomName = item.GetName(),
|
||||||
RomCRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
RomCRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
RomSize = item.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
RomSize = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
RomOf = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.RomOfKey),
|
RomOf = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.RomOfKey),
|
||||||
MergeName = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
MergeName = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) < 0)
|
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
||||||
@@ -223,7 +223,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
Type = rom.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey).AsStringValue<ItemType>(),
|
Type = rom.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey).AsStringValue<ItemType>(),
|
||||||
RomName = rom.GetName(),
|
RomName = rom.GetName(),
|
||||||
DiskName = string.Empty,
|
DiskName = string.Empty,
|
||||||
Size = rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
MD5 = rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
MD5 = rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
var rom = new Models.SoftwareList.Rom
|
var rom = new Models.SoftwareList.Rom
|
||||||
{
|
{
|
||||||
Name = item.GetName(),
|
Name = item.GetName(),
|
||||||
Size = item.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey)?.ToString(),
|
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||||
Length = null,
|
Length = null,
|
||||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using System.Threading.Tasks;
|
|||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SabreTools.Core;
|
using SabreTools.Core;
|
||||||
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
using SabreTools.Hashing;
|
using SabreTools.Hashing;
|
||||||
@@ -249,7 +250,7 @@ namespace SabreTools.DatFiles
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
||||||
{
|
{
|
||||||
TotalSize += rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) ?? 0;
|
TotalSize += NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) ?? 0;
|
||||||
AddHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
AddHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
||||||
AddHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
AddHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
||||||
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
||||||
@@ -530,7 +531,7 @@ namespace SabreTools.DatFiles
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
||||||
{
|
{
|
||||||
TotalSize -= rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) ?? 0;
|
TotalSize -= NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) ?? 0;
|
||||||
RemoveHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
RemoveHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
||||||
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
||||||
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ using System.Xml.Serialization;
|
|||||||
using Microsoft.Data.Sqlite;
|
using Microsoft.Data.Sqlite;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SabreTools.Core;
|
using SabreTools.Core;
|
||||||
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
using SabreTools.Hashing;
|
using SabreTools.Hashing;
|
||||||
@@ -366,7 +367,7 @@ namespace SabreTools.DatFiles
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
||||||
{
|
{
|
||||||
TotalSize += rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) ?? 0;
|
TotalSize += NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) ?? 0;
|
||||||
AddHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
AddHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
||||||
AddHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
AddHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
||||||
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
||||||
@@ -674,7 +675,7 @@ namespace SabreTools.DatFiles
|
|||||||
case Rom rom:
|
case Rom rom:
|
||||||
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump)
|
||||||
{
|
{
|
||||||
TotalSize -= rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) ?? 0;
|
TotalSize -= NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) ?? 0;
|
||||||
RemoveHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
RemoveHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
||||||
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
||||||
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ namespace SabreTools.DatItems.Formats
|
|||||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, TextHelper.ByteArrayToString(baseFile.SHA256));
|
SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, TextHelper.ByteArrayToString(baseFile.SHA256));
|
||||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA384Key, TextHelper.ByteArrayToString(baseFile.SHA384));
|
SetFieldValue<string?>(Models.Metadata.Rom.SHA384Key, TextHelper.ByteArrayToString(baseFile.SHA384));
|
||||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key, TextHelper.ByteArrayToString(baseFile.SHA512));
|
SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key, TextHelper.ByteArrayToString(baseFile.SHA512));
|
||||||
SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, baseFile.Size);
|
SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, baseFile.Size.ToString());
|
||||||
SetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum ?? []));
|
SetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum ?? []));
|
||||||
|
|
||||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||||
@@ -127,7 +127,7 @@ namespace SabreTools.DatItems.Formats
|
|||||||
Filename = GetName(),
|
Filename = GetName(),
|
||||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||||
Date = GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
Date = GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
||||||
Size = GetFieldValue<long?>(Models.Metadata.Rom.SizeKey),
|
Size = NumberHelper.ConvertToInt64(GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)),
|
||||||
CRC = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)),
|
CRC = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)),
|
||||||
MD5 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)),
|
MD5 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)),
|
||||||
SHA1 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)),
|
SHA1 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)),
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using System.Net;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
#endif
|
#endif
|
||||||
using SabreTools.Core;
|
using SabreTools.Core;
|
||||||
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatFiles;
|
using SabreTools.DatFiles;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
@@ -412,15 +413,15 @@ namespace SabreTools.DatTools
|
|||||||
lessThan.Items.Add(key, item);
|
lessThan.Items.Add(key, item);
|
||||||
|
|
||||||
// If the file is a Rom and has no size, put it in the "lesser" dat
|
// If the file is a Rom and has no size, put it in the "lesser" dat
|
||||||
else if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null)
|
else if (rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey) == null)
|
||||||
lessThan.Items.Add(key, item);
|
lessThan.Items.Add(key, item);
|
||||||
|
|
||||||
// If the file is a Rom and less than the radix, put it in the "lesser" dat
|
// If the file is a Rom and less than the radix, put it in the "lesser" dat
|
||||||
else if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) < radix)
|
else if (NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < radix)
|
||||||
lessThan.Items.Add(key, item);
|
lessThan.Items.Add(key, item);
|
||||||
|
|
||||||
// If the file is a Rom and greater than or equal to the radix, put it in the "greater" dat
|
// If the file is a Rom and greater than or equal to the radix, put it in the "greater" dat
|
||||||
else if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) >= radix)
|
else if (NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) >= radix)
|
||||||
greaterThan.Items.Add(key, item);
|
greaterThan.Items.Add(key, item);
|
||||||
}
|
}
|
||||||
#if NET40_OR_GREATER || NETCOREAPP
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
@@ -484,8 +485,8 @@ namespace SabreTools.DatTools
|
|||||||
if (item is Rom rom)
|
if (item is Rom rom)
|
||||||
{
|
{
|
||||||
// TODO: Should there be more than just a log if a single item is larger than the chunksize?
|
// TODO: Should there be more than just a log if a single item is larger than the chunksize?
|
||||||
machineSize += rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) ?? 0;
|
machineSize += NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) ?? 0;
|
||||||
if ((rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) ?? 0) > chunkSize)
|
if ((NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) ?? 0) > chunkSize)
|
||||||
logger.Error($"{rom.GetName() ?? string.Empty} in {machine} is larger than {chunkSize}");
|
logger.Error($"{rom.GetName() ?? string.Empty} in {machine} is larger than {chunkSize}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,28 +25,28 @@ namespace SabreTools.Test.DatFiles
|
|||||||
rom1.SetName("rom-1");
|
rom1.SetName("rom-1");
|
||||||
rom1.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
||||||
rom1.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
var rom2 = new Rom();
|
var rom2 = new Rom();
|
||||||
rom2.SetName("rom-2");
|
rom2.SetName("rom-2");
|
||||||
rom2.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
||||||
rom2.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
var rom3 = new Rom();
|
var rom3 = new Rom();
|
||||||
rom3.SetName("rom-3");
|
rom3.SetName("rom-3");
|
||||||
rom3.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
rom3.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
rom3.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "00000ea4014ce66679e7e17d56ac510f67e39e26");
|
rom3.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "00000ea4014ce66679e7e17d56ac510f67e39e26");
|
||||||
rom3.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom3.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine2);
|
rom1.CopyMachineInformation(machine2);
|
||||||
|
|
||||||
var rom4 = new Rom();
|
var rom4 = new Rom();
|
||||||
rom4.SetName("rom-4");
|
rom4.SetName("rom-4");
|
||||||
rom4.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
rom4.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
rom4.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "00000151d437442e74e5134023fab8bf694a2487");
|
rom4.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "00000151d437442e74e5134023fab8bf694a2487");
|
||||||
rom4.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom4.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine2);
|
rom1.CopyMachineInformation(machine2);
|
||||||
|
|
||||||
// Setup the dictionary
|
// Setup the dictionary
|
||||||
@@ -86,7 +86,7 @@ namespace SabreTools.Test.DatFiles
|
|||||||
rom1.SetName("rom-1");
|
rom1.SetName("rom-1");
|
||||||
rom1.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
||||||
rom1.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
var rom2 = new Rom();
|
var rom2 = new Rom();
|
||||||
@@ -94,7 +94,7 @@ namespace SabreTools.Test.DatFiles
|
|||||||
rom2.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
rom2.SetFieldValue<bool?>(DatItem.RemoveKey, true);
|
rom2.SetFieldValue<bool?>(DatItem.RemoveKey, true);
|
||||||
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
||||||
rom2.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
// Setup the dictionary
|
// Setup the dictionary
|
||||||
@@ -122,13 +122,13 @@ namespace SabreTools.Test.DatFiles
|
|||||||
var rom1 = new Rom();
|
var rom1 = new Rom();
|
||||||
rom1.SetName("rom-1");
|
rom1.SetName("rom-1");
|
||||||
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
||||||
rom1.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
var rom2 = new Rom();
|
var rom2 = new Rom();
|
||||||
rom2.SetName("rom-2");
|
rom2.SetName("rom-2");
|
||||||
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
||||||
rom2.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
// Setup the dictionary
|
// Setup the dictionary
|
||||||
@@ -141,7 +141,7 @@ namespace SabreTools.Test.DatFiles
|
|||||||
var rom = new Rom();
|
var rom = new Rom();
|
||||||
rom.SetName("rom-1");
|
rom.SetName("rom-1");
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
||||||
rom.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, hasDuplicate ? 1024 : 2048);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, hasDuplicate ? "1024" : "2048");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
var actual = dict.GetDuplicates(rom);
|
var actual = dict.GetDuplicates(rom);
|
||||||
@@ -160,13 +160,13 @@ namespace SabreTools.Test.DatFiles
|
|||||||
var rom1 = new Rom();
|
var rom1 = new Rom();
|
||||||
rom1.SetName("rom-1");
|
rom1.SetName("rom-1");
|
||||||
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
||||||
rom1.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom1.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
var rom2 = new Rom();
|
var rom2 = new Rom();
|
||||||
rom2.SetName("rom-2");
|
rom2.SetName("rom-2");
|
||||||
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
|
||||||
rom2.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, 1024);
|
rom2.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, "1024");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
// Setup the dictionary
|
// Setup the dictionary
|
||||||
@@ -179,7 +179,7 @@ namespace SabreTools.Test.DatFiles
|
|||||||
var rom = new Rom();
|
var rom = new Rom();
|
||||||
rom.SetName("rom-1");
|
rom.SetName("rom-1");
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
|
||||||
rom.SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, expected ? 1024 : 2048);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, expected ? "1024" : "2048");
|
||||||
rom1.CopyMachineInformation(machine1);
|
rom1.CopyMachineInformation(machine1);
|
||||||
|
|
||||||
bool actual = dict.HasDuplicates(rom);
|
bool actual = dict.HasDuplicates(rom);
|
||||||
|
|||||||
Reference in New Issue
Block a user