mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-22 14:55:11 +00:00
Convert Disk fully over to properties
This commit is contained in:
@@ -654,9 +654,11 @@ namespace SabreTools.Metadata.DatFiles
|
||||
if (filterRunner is not null && !filterRunner.Run(disk))
|
||||
continue;
|
||||
|
||||
var diskItem = new Disk(disk, machine, source);
|
||||
diskItem.Write<DiskArea?>(Disk.DiskAreaKey, diskAreaitem);
|
||||
diskItem.Write<Part?>(Disk.PartKey, partItem);
|
||||
var diskItem = new Disk(disk, machine, source)
|
||||
{
|
||||
DiskArea = diskAreaitem,
|
||||
Part = partItem,
|
||||
};
|
||||
|
||||
AddItem(diskItem, statsOnly);
|
||||
// AddItemDB(diskItem, machineIndex, sourceIndex, statsOnly);
|
||||
|
||||
@@ -297,7 +297,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
// Special disk handling
|
||||
if (item is Disk disk)
|
||||
{
|
||||
string? mergeTag = disk.ReadString(Data.Models.Metadata.Disk.MergeKey);
|
||||
string? mergeTag = disk.Merge;
|
||||
|
||||
// If the merge tag exists and the parent already contains it, skip
|
||||
if (mergeTag is not null && GetItemsForBucket(cloneOf)
|
||||
@@ -433,7 +433,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
// Special disk handling
|
||||
if (item.Value is Disk disk)
|
||||
{
|
||||
string? mergeTag = disk.ReadString(Data.Models.Metadata.Disk.MergeKey);
|
||||
string? mergeTag = disk.Merge;
|
||||
|
||||
// If the merge tag exists and the parent already contains it, skip
|
||||
if (mergeTag is not null && GetItemsForBucketDB(cloneOf).Values
|
||||
@@ -722,8 +722,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
continue;
|
||||
|
||||
deviceReferences.Add(deviceReference);
|
||||
var deviceRef = new DeviceRef();
|
||||
deviceRef.Name = deviceReference;
|
||||
var deviceRef = new DeviceRef { Name = deviceReference };
|
||||
deviceRef.CopyMachineInformation(copyFrom);
|
||||
Items.AddItem(deviceRef, statsOnly: false);
|
||||
}
|
||||
@@ -772,8 +771,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
continue;
|
||||
|
||||
slotOptions.Add(slotOption);
|
||||
var slotOptionItem = new SlotOption();
|
||||
slotOptionItem.DevName = slotOption;
|
||||
var slotOptionItem = new SlotOption { DevName = slotOption };
|
||||
slotOptionItem.CopyMachineInformation(copyFrom);
|
||||
|
||||
var slotItem = new Slot();
|
||||
@@ -887,8 +885,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
{
|
||||
if (!deviceReferences.Contains(deviceReference))
|
||||
{
|
||||
var deviceRef = new DeviceRef();
|
||||
deviceRef.Name = deviceReference;
|
||||
var deviceRef = new DeviceRef { Name = deviceReference };
|
||||
ItemsDB.AddItem(deviceRef, machine.Key, source.Key);
|
||||
}
|
||||
}
|
||||
@@ -943,8 +940,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
{
|
||||
if (!slotOptions.Contains(slotOption))
|
||||
{
|
||||
var slotOptionItem = new SlotOption();
|
||||
slotOptionItem.DevName = slotOption;
|
||||
var slotOptionItem = new SlotOption { DevName = slotOption };
|
||||
|
||||
var slotItem = new Slot();
|
||||
slotItem.Write<SlotOption[]?>(Data.Models.Metadata.Slot.SlotOptionKey, [slotOptionItem]);
|
||||
|
||||
@@ -164,17 +164,17 @@ namespace SabreTools.Metadata.DatFiles
|
||||
AppendToMachineKey(machine, Data.Models.Metadata.Machine.DiskKey, diskItem);
|
||||
|
||||
// Add Part and DiskArea mappings
|
||||
bool diskContainsPart = diskItem.ContainsKey(DatItems.Formats.Disk.PartKey);
|
||||
bool diskContainsDiskArea = diskItem.ContainsKey(DatItems.Formats.Disk.DiskAreaKey);
|
||||
bool diskContainsPart = disk.Part is not null;
|
||||
bool diskContainsDiskArea = disk.DiskArea is not null;
|
||||
if (diskContainsPart && diskContainsDiskArea)
|
||||
{
|
||||
var partItem = diskItem.Read<DatItems.Formats.Part>(DatItems.Formats.Disk.PartKey);
|
||||
var partItem = disk.Part;
|
||||
if (partItem is not null)
|
||||
{
|
||||
var partItemInternal = partItem.GetInternalClone();
|
||||
partMappings[partItemInternal] = diskItem;
|
||||
|
||||
var diskAreaItem = diskItem.Read<DatItems.Formats.DiskArea>(DatItems.Formats.Disk.DiskAreaKey);
|
||||
var diskAreaItem = disk.DiskArea;
|
||||
if (diskAreaItem is not null)
|
||||
diskAreaMappings[partItemInternal] = (diskAreaItem.GetInternalClone(), diskItem);
|
||||
}
|
||||
@@ -585,17 +585,17 @@ namespace SabreTools.Metadata.DatFiles
|
||||
AppendToMachineKey(machine, Data.Models.Metadata.Machine.DiskKey, diskItem);
|
||||
|
||||
// Add Part and DiskArea mappings
|
||||
bool diskContainsPart = diskItem.ContainsKey(DatItems.Formats.Disk.PartKey);
|
||||
bool diskContainsDiskArea = diskItem.ContainsKey(DatItems.Formats.Disk.DiskAreaKey);
|
||||
bool diskContainsPart = disk.Part is not null;
|
||||
bool diskContainsDiskArea = disk.DiskArea is not null;
|
||||
if (diskContainsPart && diskContainsDiskArea)
|
||||
{
|
||||
var partItem = diskItem.Read<DatItems.Formats.Part>(DatItems.Formats.Disk.PartKey);
|
||||
var partItem = disk.Part;
|
||||
if (partItem is not null)
|
||||
{
|
||||
var partItemInternal = partItem.GetInternalClone();
|
||||
partMappings[partItemInternal] = diskItem;
|
||||
|
||||
var diskAreaItem = diskItem.Read<DatItems.Formats.DiskArea>(DatItems.Formats.Disk.DiskAreaKey);
|
||||
var diskAreaItem = disk.DiskArea;
|
||||
if (diskAreaItem is not null)
|
||||
diskAreaMappings[partItemInternal] = (diskAreaItem.GetInternalClone(), diskItem);
|
||||
}
|
||||
|
||||
@@ -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.ReadString(Data.Models.Metadata.Disk.SHA1Key);
|
||||
string? sha1 = disk.SHA1;
|
||||
if (!string.IsNullOrEmpty(sha1))
|
||||
{
|
||||
name = Utilities.GetDepotPath(sha1, Modifiers.OutputDepot.Depth)?.Replace('\\', '/');
|
||||
@@ -606,8 +606,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
// Ensure we have the proper values for replacement
|
||||
if (item is Disk disk)
|
||||
{
|
||||
md5 = disk.ReadString(Data.Models.Metadata.Disk.MD5Key) ?? string.Empty;
|
||||
sha1 = disk.ReadString(Data.Models.Metadata.Disk.SHA1Key) ?? string.Empty;
|
||||
md5 = disk.MD5 ?? string.Empty;
|
||||
sha1 = disk.SHA1 ?? string.Empty;
|
||||
}
|
||||
else if (item is DatItems.Formats.File file)
|
||||
{
|
||||
@@ -1038,11 +1038,11 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// </summary>
|
||||
private static string GetDuplicateSuffix(Disk datItem)
|
||||
{
|
||||
string? md5 = datItem.ReadString(Data.Models.Metadata.Disk.MD5Key);
|
||||
string? md5 = datItem.MD5;
|
||||
if (!string.IsNullOrEmpty(md5))
|
||||
return $"_{md5}";
|
||||
|
||||
string? sha1 = datItem.ReadString(Data.Models.Metadata.Disk.SHA1Key);
|
||||
string? sha1 = datItem.SHA1;
|
||||
if (!string.IsNullOrEmpty(sha1))
|
||||
return $"_{sha1}";
|
||||
|
||||
|
||||
@@ -330,8 +330,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
ItemStatus? status = disk.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
AddHashCount(HashType.MD5, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key)) ? 0 : 1);
|
||||
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)) ? 0 : 1);
|
||||
AddHashCount(HashType.MD5, string.IsNullOrEmpty(disk.MD5) ? 0 : 1);
|
||||
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(disk.SHA1) ? 0 : 1);
|
||||
}
|
||||
|
||||
AddStatusCount(ItemStatus.BadDump, status == ItemStatus.BadDump ? 1 : 0);
|
||||
@@ -459,8 +459,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
ItemStatus? status = disk.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key)) ? 0 : 1);
|
||||
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)) ? 0 : 1);
|
||||
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(disk.MD5) ? 0 : 1);
|
||||
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(disk.SHA1) ? 0 : 1);
|
||||
}
|
||||
|
||||
RemoveStatusCount(ItemStatus.BadDump, status == ItemStatus.BadDump ? 1 : 0);
|
||||
|
||||
@@ -114,10 +114,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.Name))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.Name));
|
||||
if (string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.MD5)
|
||||
&& string.IsNullOrEmpty(disk.SHA1))
|
||||
{
|
||||
missingFields.Add(Data.Models.Metadata.Disk.SHA1Key);
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.SHA1));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -37,10 +37,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.MD5)
|
||||
&& string.IsNullOrEmpty(disk.SHA1))
|
||||
{
|
||||
missingFields.Add(Data.Models.Metadata.Disk.SHA1Key);
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.SHA1));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -282,10 +282,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.Name))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.Name));
|
||||
if (string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.MD5)
|
||||
&& string.IsNullOrEmpty(disk.SHA1))
|
||||
{
|
||||
missingFields.Add(Data.Models.Metadata.Disk.SHA1Key);
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.SHA1));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -306,10 +306,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.Name))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.Name));
|
||||
if (string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.MD5)
|
||||
&& string.IsNullOrEmpty(disk.SHA1))
|
||||
{
|
||||
missingFields.Add(Data.Models.Metadata.Disk.SHA1Key);
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.SHA1));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -40,8 +40,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key)))
|
||||
missingFields.Add(Data.Models.Metadata.Disk.MD5Key);
|
||||
if (string.IsNullOrEmpty(disk.MD5))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.MD5));
|
||||
break;
|
||||
|
||||
case Media medium:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
@@ -73,10 +73,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.MD5)
|
||||
&& string.IsNullOrEmpty(disk.SHA1))
|
||||
{
|
||||
missingFields.Add(Data.Models.Metadata.Disk.SHA1Key);
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.SHA1));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -40,8 +40,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
missingFields.Add(Data.Models.Metadata.Disk.SHA1Key);
|
||||
if (string.IsNullOrEmpty(disk.SHA1))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Disk.SHA1));
|
||||
break;
|
||||
|
||||
case Media medium:
|
||||
|
||||
@@ -145,9 +145,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(disk.Read<Part?>(Disk.PartKey)!.Name))
|
||||
if (string.IsNullOrEmpty(disk.Part!.Name))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Part.Name));
|
||||
if (string.IsNullOrEmpty(disk.Read<Part?>(Disk.PartKey)!.Interface))
|
||||
if (string.IsNullOrEmpty(disk.Part.Interface))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Part.Interface));
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(disk.Read<DiskArea?>(Disk.DiskAreaKey)!.Name))
|
||||
if (string.IsNullOrEmpty(disk.DiskArea!.Name))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.DiskArea.Name));
|
||||
}
|
||||
|
||||
|
||||
@@ -99,8 +99,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
{
|
||||
// If the file has aboslutely no hashes, skip and log
|
||||
if (disk.Status != ItemStatus.Nodump
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
&& string.IsNullOrEmpty(disk.MD5)
|
||||
&& string.IsNullOrEmpty(disk.SHA1))
|
||||
{
|
||||
_logger.Verbose($"Incomplete entry for '{disk.Name}' will be output as nodump");
|
||||
disk.Status = ItemStatus.Nodump;
|
||||
|
||||
@@ -188,8 +188,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
{
|
||||
// If the file has aboslutely no hashes, skip and log
|
||||
if (disk.Status != ItemStatus.Nodump
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
&& string.IsNullOrEmpty(disk.MD5)
|
||||
&& string.IsNullOrEmpty(disk.SHA1))
|
||||
{
|
||||
_logger.Verbose($"Incomplete entry for '{disk.Name}' will be output as nodump");
|
||||
disk.Status = ItemStatus.Nodump;
|
||||
|
||||
Reference in New Issue
Block a user