Convert last long key to property

This commit is contained in:
Matt Nadareski
2026-04-03 17:49:45 -04:00
parent 9df08780db
commit 5ccfde54f5
15 changed files with 30 additions and 15 deletions

View File

@@ -319,6 +319,7 @@ namespace SabreTools.Data.Extensions
else if (self is Rom selfRom && clone is Rom cloneRom)
{
cloneRom.Dispose = selfRom.Dispose;
cloneRom.FileCount = selfRom.FileCount;
cloneRom.FileIsAvailable = selfRom.FileIsAvailable;
cloneRom.Inverted = selfRom.Inverted;
cloneRom.LoadFlag = selfRom.LoadFlag;

View File

@@ -33,7 +33,7 @@ namespace SabreTools.Data.Models.ArchiveDotOrg
public string? SHA1 { get; set; }
[XmlElement("filecount")]
public string? FileCount { get; set; }
public long? FileCount { get; set; }
/// <remarks>Is this a set of defined values?</remarks>
[XmlElement("format")]

View File

@@ -31,6 +31,7 @@ namespace SabreTools.Data.Models.Metadata
/// <summary>
/// Read a key as a bool, returning null on error
/// </summary>
/// TODO: Determine if this can be removed
public bool? ReadBool(string key)
{
if (!ValidateReadKey(key))
@@ -52,6 +53,7 @@ namespace SabreTools.Data.Models.Metadata
/// <summary>
/// Read a key as a double, returning null on error
/// </summary>
/// TODO: Determine if this can be removed
public double? ReadDouble(string key)
{
if (!ValidateReadKey(key))
@@ -82,6 +84,7 @@ namespace SabreTools.Data.Models.Metadata
/// Read a key as a long, returning null on error
/// </summary>
/// <remarks>TODO: Add logic to convert SI suffixes and hex</remarks>
/// TODO: Determine if this can be removed
public long? ReadLong(string key)
{
if (!ValidateReadKey(key))

View File

@@ -11,6 +11,9 @@ namespace SabreTools.Data.Models.Metadata
/// <remarks>(yes|no) "no"</remarks>
public bool? Dispose { get; set; }
/// <remarks>ArchiveDotOrg.File</remarks>
public long? FileCount { get; set; }
/// <remarks>bool; AttractMode.Row</remarks>
public bool? FileIsAvailable { get; set; }
@@ -102,9 +105,6 @@ namespace SabreTools.Data.Models.Metadata
/// <remarks>string; OfflineList.FileRomCRC</remarks>
public const string ExtensionKey = "extension";
/// <remarks>long; ArchiveDotOrg.File</remarks>
public const string FileCountKey = "filecount";
/// <remarks>string</remarks>
public const string FlagsKey = "flags";

View File

@@ -792,7 +792,7 @@ namespace SabreTools.Metadata.DatFiles.Test
[Data.Models.Metadata.Rom.DateKey] = "date",
Dispose = true,
[Data.Models.Metadata.Rom.ExtensionKey] = "extension",
[Data.Models.Metadata.Rom.FileCountKey] = 12345L,
FileCount = 12345,
FileIsAvailable = true,
[Data.Models.Metadata.Rom.FlagsKey] = "flags",
[Data.Models.Metadata.Rom.FormatKey] = "format",
@@ -1494,7 +1494,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal("date", rom.ReadString(Data.Models.Metadata.Rom.DateKey));
Assert.True(rom.Dispose);
Assert.Equal("extension", rom.ReadString(Data.Models.Metadata.Rom.ExtensionKey));
Assert.Equal(12345L, rom.ReadLong(Data.Models.Metadata.Rom.FileCountKey));
Assert.Equal(12345, rom.FileCount);
Assert.True(rom.FileIsAvailable);
Assert.Equal("flags", rom.ReadString(Data.Models.Metadata.Rom.FlagsKey));
Assert.Equal("format", rom.ReadString(Data.Models.Metadata.Rom.FormatKey));

View File

@@ -1057,7 +1057,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal("date", rom.ReadString(Data.Models.Metadata.Rom.DateKey));
Assert.True(rom.Dispose);
Assert.Equal("extension", rom.ReadString(Data.Models.Metadata.Rom.ExtensionKey));
Assert.Equal(12345, rom.ReadLong(Data.Models.Metadata.Rom.FileCountKey));
Assert.Equal(12345, rom.FileCount);
Assert.True(rom.FileIsAvailable);
Assert.Equal("flags", rom.ReadString(Data.Models.Metadata.Rom.FlagsKey));
Assert.Equal("format", rom.ReadString(Data.Models.Metadata.Rom.FormatKey));

View File

@@ -48,6 +48,12 @@ namespace SabreTools.Metadata.DatItems.Formats
set => (_internal as Data.Models.Metadata.Rom)?.Dispose = value;
}
public long? FileCount
{
get => (_internal as Data.Models.Metadata.Rom)?.FileCount;
set => (_internal as Data.Models.Metadata.Rom)?.FileCount = value;
}
public bool? FileIsAvailable
{
get => (_internal as Data.Models.Metadata.Rom)?.FileIsAvailable;

View File

@@ -790,6 +790,9 @@ namespace SabreTools.Metadata.Filter
case Rom item when fieldName == "dispose":
checkValue = item.Dispose.FromYesNo();
return true;
case Rom item when fieldName == "filecount":
checkValue = item.FileCount?.ToString();
return true;
case Rom item when fieldName == "fileisavailable":
checkValue = item.FileIsAvailable.FromYesNo();
return true;

View File

@@ -58,6 +58,7 @@ namespace SabreTools.Metadata
/// </summary>
/// <param name="fieldName">Field to retrieve</param>
/// <returns>Value from the field, if possible</returns>
/// TODO: Determine if this can be removed
public long? ReadLong(string fieldName)
=> _internal.ReadLong(fieldName);

View File

@@ -42,7 +42,7 @@ namespace SabreTools.Serialization.CrossModel.Test
MD5 = "XXXXXX",
CRC32 = "XXXXXX",
SHA1 = "XXXXXX",
FileCount = "XXXXXX",
FileCount = 12345,
Format = "XXXXXX",
Original = "XXXXXX",
Summation = "XXXXXX",
@@ -116,7 +116,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal("XXXXXX", file.MD5);
Assert.Equal("XXXXXX", file.CRC32);
Assert.Equal("XXXXXX", file.SHA1);
Assert.Equal("XXXXXX", file.FileCount);
Assert.Equal(12345, file.FileCount);
Assert.Equal("XXXXXX", file.Format);
Assert.Equal("XXXXXX", file.Original);
Assert.Equal("XXXXXX", file.Summation);

View File

@@ -52,7 +52,7 @@ namespace SabreTools.Serialization.CrossModel
MD5 = item.ReadString(Data.Models.Metadata.Rom.MD5Key),
CRC32 = item.ReadString(Data.Models.Metadata.Rom.CRCKey),
SHA1 = item.ReadString(Data.Models.Metadata.Rom.SHA1Key),
FileCount = item.ReadString(Data.Models.Metadata.Rom.FileCountKey),
FileCount = item.FileCount,
Format = item.ReadString(Data.Models.Metadata.Rom.FormatKey),
Original = item.ReadString(Data.Models.Metadata.Rom.OriginalKey),
Summation = item.ReadString(Data.Models.Metadata.Rom.SummationKey),

View File

@@ -70,7 +70,7 @@ namespace SabreTools.Serialization.CrossModel
[Data.Models.Metadata.Rom.MD5Key] = item.MD5,
[Data.Models.Metadata.Rom.CRCKey] = item.CRC32,
[Data.Models.Metadata.Rom.SHA1Key] = item.SHA1,
[Data.Models.Metadata.Rom.FileCountKey] = item.FileCount,
FileCount = item.FileCount,
[Data.Models.Metadata.Rom.FormatKey] = item.Format,
[Data.Models.Metadata.Rom.OriginalKey] = item.Original,
[Data.Models.Metadata.Rom.SummationKey] = item.Summation,

View File

@@ -108,7 +108,7 @@ namespace SabreTools.Serialization.Readers.Test
MD5 = "XXXXXX",
CRC32 = "XXXXXX",
SHA1 = "XXXXXX",
FileCount = "XXXXXX",
FileCount = 12345,
Format = "XXXXXX",
Original = "XXXXXX",
Summation = "XXXXXX",
@@ -182,7 +182,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal("XXXXXX", file.MD5);
Assert.Equal("XXXXXX", file.CRC32);
Assert.Equal("XXXXXX", file.SHA1);
Assert.Equal("XXXXXX", file.FileCount);
Assert.Equal(12345, file.FileCount);
Assert.Equal("XXXXXX", file.Format);
Assert.Equal("XXXXXX", file.Original);
Assert.Equal("XXXXXX", file.Summation);

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Xml;
using SabreTools.Data.Models.ArchiveDotOrg;
using SabreTools.Text.Extensions;
namespace SabreTools.Serialization.Readers
{
@@ -136,7 +137,7 @@ namespace SabreTools.Serialization.Readers
obj.SHA1 = reader.ReadElementContentAsString();
break;
case "filecount":
obj.FileCount = reader.ReadElementContentAsString();
obj.FileCount = NumberHelper.ConvertToInt64(reader.ReadElementContentAsString());
break;
case "format":
obj.Format = reader.ReadElementContentAsString();

View File

@@ -57,7 +57,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalElementString("md5", obj.MD5);
writer.WriteOptionalElementString("crc32", obj.CRC32);
writer.WriteOptionalElementString("sha1", obj.SHA1);
writer.WriteOptionalElementString("filecount", obj.FileCount);
writer.WriteOptionalElementString("filecount", obj.FileCount?.ToString());
writer.WriteOptionalElementString("format", obj.Format);
writer.WriteOptionalElementString("original", obj.Original);
writer.WriteOptionalElementString("summation", obj.Summation);