String Machine keys to properties

This commit is contained in:
Matt Nadareski
2026-04-03 22:17:31 -04:00
parent 8e2f519e15
commit b55a932b2b
42 changed files with 2157 additions and 1124 deletions

View File

@@ -307,12 +307,54 @@ namespace SabreTools.Data.Extensions
}
else if (self is Machine selfMachine && clone is Machine cloneMachine)
{
cloneMachine.Board = selfMachine.Board;
cloneMachine.Buttons = selfMachine.Buttons;
cloneMachine.CloneOf = selfMachine.CloneOf;
cloneMachine.CloneOfId = selfMachine.CloneOfId;
cloneMachine.Company = selfMachine.Company;
cloneMachine.Control = selfMachine.Control;
cloneMachine.Country = selfMachine.Country;
cloneMachine.Description = selfMachine.Description;
cloneMachine.DirName = selfMachine.DirName;
cloneMachine.DisplayCount = selfMachine.DisplayCount;
cloneMachine.DisplayType = selfMachine.DisplayType;
cloneMachine.DuplicateID = selfMachine.DuplicateID;
cloneMachine.Emulator = selfMachine.Emulator;
cloneMachine.Extra = selfMachine.Extra;
cloneMachine.Favorite = selfMachine.Favorite;
cloneMachine.GenMSXID = selfMachine.GenMSXID;
cloneMachine.Hash = selfMachine.Hash;
cloneMachine.History = selfMachine.History;
cloneMachine.Id = selfMachine.Id;
cloneMachine.Im1CRC = selfMachine.Im1CRC;
cloneMachine.Im2CRC = selfMachine.Im2CRC;
cloneMachine.ImageNumber = selfMachine.ImageNumber;
cloneMachine.IsBios = selfMachine.IsBios;
cloneMachine.IsDevice = selfMachine.IsDevice;
cloneMachine.IsMechanical = selfMachine.IsMechanical;
cloneMachine.Language = selfMachine.Language;
cloneMachine.Location = selfMachine.Location;
cloneMachine.Manufacturer = selfMachine.Manufacturer;
cloneMachine.Notes = selfMachine.Notes;
cloneMachine.PlayedCount = selfMachine.PlayedCount;
cloneMachine.PlayedTime = selfMachine.PlayedTime;
cloneMachine.Players = selfMachine.Players;
cloneMachine.Publisher = selfMachine.Publisher;
cloneMachine.RebuildTo = selfMachine.RebuildTo;
cloneMachine.ReleaseNumber = selfMachine.ReleaseNumber;
cloneMachine.RomOf = selfMachine.RomOf;
cloneMachine.Rotation = selfMachine.Rotation;
cloneMachine.Runnable = selfMachine.Runnable;
cloneMachine.SampleOf = selfMachine.SampleOf;
cloneMachine.SaveType = selfMachine.SaveType;
cloneMachine.SourceFile = selfMachine.SourceFile;
cloneMachine.SourceRom = selfMachine.SourceRom;
cloneMachine.Status = selfMachine.Status;
cloneMachine.Supported = selfMachine.Supported;
cloneMachine.System = selfMachine.System;
cloneMachine.Tags = selfMachine.Tags;
cloneMachine.Url = selfMachine.Url;
cloneMachine.Year = selfMachine.Year;
}
else if (self is Media selfMedia && clone is Media cloneMedia)
{

View File

@@ -8,8 +8,50 @@ namespace SabreTools.Data.Models.Metadata
{
#region Properties
public string? Board { get; set; }
public string? Buttons { get; set; }
public string? CloneOf { get; set; }
public string? CloneOfId { get; set; }
public string? Company { get; set; }
public string? Control { get; set; }
public string? Country { get; set; }
public string? Description { get; set; }
public string? DirName { get; set; }
public string? DisplayCount { get; set; }
public string? DisplayType { get; set; }
public string? DuplicateID { get; set; }
public string? Emulator { get; set; }
public string? Extra { get; set; }
public string? Favorite { get; set; }
public string? GenMSXID { get; set; }
public string? Hash { get; set; }
public string? History { get; set; }
public string? Id { get; set; }
public string? Im1CRC { get; set; }
public string? Im2CRC { get; set; }
public string? ImageNumber { get; set; }
/// <remarks>(yes|no) "no"</remarks>
public bool? IsBios { get; set; }
@@ -19,14 +61,56 @@ namespace SabreTools.Data.Models.Metadata
/// <remarks>(yes|no) "no"</remarks>
public bool? IsMechanical { get; set; }
public string? Language { get; set; }
public string? Location { get; set; }
public string? Manufacturer { get; set; }
public string? Name { get; set; }
public string? Notes { get; set; }
public string? PlayedCount { get; set; }
public string? PlayedTime { get; set; }
public string? Players { get; set; }
public string? Publisher { get; set; }
public string? RebuildTo { get; set; }
public string? ReleaseNumber { get; set; }
public string? RomOf { get; set; }
public string? Rotation { get; set; }
/// <remarks>(yes|partial|no) "no"</remarks>
public Runnable? Runnable { get; set; }
public string? SampleOf { get; set; }
public string? SaveType { get; set; }
public string? SourceFile { get; set; }
public string? SourceRom { get; set; }
public string? Status { get; set; }
/// <remarks>(yes|partial|no) "yes"</remarks>
public Supported? Supported { get; set; }
public string? System { get; set; }
public string? Tags { get; set; }
public string? Url { get; set; }
public string? Year { get; set; }
#endregion
#region Keys
@@ -43,12 +127,6 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string BiosSetKey = "biosset";
/// <remarks>string</remarks>
public const string BoardKey = "board";
/// <remarks>string</remarks>
public const string ButtonsKey = "buttons";
/// <remarks>string, string[]</remarks>
public const string CategoryKey = "category";
@@ -56,28 +134,13 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string ChipKey = "chip";
/// <remarks>string</remarks>
public const string CloneOfKey = "cloneof";
/// <remarks>string</remarks>
public const string CloneOfIdKey = "cloneofid";
/// <remarks>string, string[]</remarks>
public const string CommentKey = "comment";
/// <remarks>string</remarks>
public const string CompanyKey = "company";
/// <remarks>Configuration[]</remarks>
[NoFilter]
public const string ConfigurationKey = "configuration";
/// <remarks>string</remarks>
public const string ControlKey = "control";
/// <remarks>string</remarks>
public const string CountryKey = "country";
/// <remarks>Device[]</remarks>
[NoFilter]
public const string DeviceKey = "device";
@@ -90,23 +153,14 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string DipSwitchKey = "dipswitch";
/// <remarks>string</remarks>
public const string DirNameKey = "dirName";
/// <remarks>Disk[]</remarks>
[NoFilter]
public const string DiskKey = "disk";
/// <remarks>string</remarks>
public const string DisplayCountKey = "displaycount";
/// <remarks>Display[]</remarks>
[NoFilter]
public const string DisplayKey = "display";
/// <remarks>string</remarks>
public const string DisplayTypeKey = "displaytype";
/// <remarks>Driver</remarks>
[NoFilter]
public const string DriverKey = "driver";
@@ -115,43 +169,10 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string DumpKey = "dump";
/// <remarks>string</remarks>
public const string DuplicateIDKey = "duplicateID";
/// <remarks>string</remarks>
public const string EmulatorKey = "emulator";
/// <remarks>string</remarks>
public const string ExtraKey = "extra";
/// <remarks>string</remarks>
public const string FavoriteKey = "favorite";
/// <remarks>Feature[]</remarks>
[NoFilter]
public const string FeatureKey = "feature";
/// <remarks>string</remarks>
public const string GenMSXIDKey = "genmsxid";
/// <remarks>string</remarks>
public const string HashKey = "hash";
/// <remarks>string</remarks>
public const string HistoryKey = "history";
/// <remarks>string</remarks>
public const string IdKey = "id";
/// <remarks>string</remarks>
public const string Im1CRCKey = "im1CRC";
/// <remarks>string</remarks>
public const string Im2CRCKey = "im2CRC";
/// <remarks>string</remarks>
public const string ImageNumberKey = "imageNumber";
/// <remarks>Info[]</remarks>
[NoFilter]
public const string InfoKey = "info";
@@ -160,76 +181,34 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string InputKey = "input";
/// <remarks>string</remarks>
public const string LanguageKey = "language";
/// <remarks>string</remarks>
public const string LocationKey = "location";
/// <remarks>string</remarks>
public const string ManufacturerKey = "manufacturer";
/// <remarks>Media[]</remarks>
[NoFilter]
public const string MediaKey = "media";
/// <remarks>string</remarks>
public const string NotesKey = "notes";
/// <remarks>Part[]</remarks>
[NoFilter]
public const string PartKey = "part";
/// <remarks>string</remarks>
public const string PlayedCountKey = "playedcount";
/// <remarks>string</remarks>
public const string PlayedTimeKey = "playedtime";
/// <remarks>string</remarks>
public const string PlayersKey = "players";
/// <remarks>Port[]</remarks>
[NoFilter]
public const string PortKey = "port";
/// <remarks>string</remarks>
public const string PublisherKey = "publisher";
/// <remarks>RamOption[]</remarks>
[NoFilter]
public const string RamOptionKey = "ramoption";
/// <remarks>string</remarks>
public const string RebuildToKey = "rebuildto";
/// <remarks>Release[]</remarks>
[NoFilter]
public const string ReleaseKey = "release";
/// <remarks>string</remarks>
public const string ReleaseNumberKey = "releaseNumber";
/// <remarks>Rom[]</remarks>
[NoFilter]
public const string RomKey = "rom";
/// <remarks>string</remarks>
public const string RomOfKey = "romof";
/// <remarks>string</remarks>
public const string RotationKey = "rotation";
/// <remarks>Sample[]</remarks>
[NoFilter]
public const string SampleKey = "sample";
/// <remarks>string</remarks>
public const string SampleOfKey = "sampleof";
/// <remarks>string</remarks>
public const string SaveTypeKey = "saveType";
/// <remarks>SharedFeat[]</remarks>
[NoFilter]
public const string SharedFeatKey = "sharedfeat";
@@ -246,36 +225,15 @@ namespace SabreTools.Data.Models.Metadata
[NoFilter]
public const string SoundKey = "sound";
/// <remarks>string</remarks>
public const string SourceFileKey = "sourcefile";
/// <remarks>string</remarks>
public const string SourceRomKey = "sourceRom";
/// <remarks>string</remarks>
public const string StatusKey = "status";
/// <remarks>string</remarks>
public const string SystemKey = "system";
/// <remarks>string</remarks>
public const string TagsKey = "tags";
/// TODO: This needs an internal model OR mapping to fields
/// <remarks>Trurip</remarks>
[NoFilter]
public const string TruripKey = "trurip";
/// <remarks>string</remarks>
public const string UrlKey = "url";
/// <remarks>Video[]</remarks>
[NoFilter]
public const string VideoKey = "video";
/// <remarks>string</remarks>
public const string YearKey = "year";
#endregion
}
}

View File

@@ -19,8 +19,10 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem datItem = new Rom();
datItem.SetName("rom.bin");
@@ -47,8 +49,10 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem datItem = new Rom();
datItem.SetName("rom.bin");
@@ -78,13 +82,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
machine.Description = "description";
Machine machine = new Machine
{
Name = "machine",
Description = "description"
};
DatItem datItem = new Rom();
datItem.Machine = machine;
datItem.Source = source;
DatItem datItem = new Rom
{
Machine = machine,
Source = source
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.AddItem(datItem, statsOnly: false);
@@ -102,9 +110,11 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void MachineDescriptionToName_ItemsDB()
{
Machine machine = new Machine();
machine.Name = "machine";
machine.Description = "description";
Machine machine = new Machine
{
Name = "machine",
Description = "description"
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
_ = datFile.AddMachineDB(machine);
@@ -125,13 +135,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem rom = new Rom();
rom.SetName("rom.bin");
rom.Machine = machine;
rom.Source = source;
DatItem rom = new Rom
{
Name = "rom.bin",
Machine = machine,
Source = source
};
DatItem disk = new Disk();
disk.SetName("disk");
@@ -164,11 +178,15 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem rom = new Rom();
rom.SetName("rom.bin");
DatItem rom = new Rom
{
Name = "rom.bin"
};
DatItem disk = new Disk();
disk.SetName("disk");
@@ -203,12 +221,16 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void SetOneGamePerRegion_Items()
{
Machine nowhereMachine = new Machine();
nowhereMachine.Name = "machine (Nowhere)";
Machine nowhereMachine = new Machine
{
Name = "machine (Nowhere)"
};
Machine worldMachine = new Machine();
worldMachine.Name = "machine (World)";
worldMachine.Write(Data.Models.Metadata.Machine.CloneOfKey, "machine (Nowhere)");
Machine worldMachine = new Machine
{
Name = "machine (World)",
CloneOf = "machine (Nowhere)"
};
DatItem nowhereRom = new Rom();
nowhereRom.SetName("rom.bin");
@@ -237,12 +259,16 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void SetOneGamePerRegion_ItemsDB()
{
Machine nowhereMachine = new Machine();
nowhereMachine.Name = "machine (Nowhere)";
Machine nowhereMachine = new Machine
{
Name = "machine (Nowhere)"
};
Machine worldMachine = new Machine();
worldMachine.Name = "machine (World)";
worldMachine.Write(Data.Models.Metadata.Machine.CloneOfKey, "machine (Nowhere)");
Machine worldMachine = new Machine
{
Name = "machine (World)",
CloneOf = "machine (Nowhere)"
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
_ = datFile.AddMachineDB(nowhereMachine);
@@ -265,12 +291,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "10.10.10-machine-name";
Machine machine = new Machine
{
Name = "10.10.10-machine-name"
};
DatItem datItem = new Rom();
datItem.Machine = machine;
datItem.Source = source;
DatItem datItem = new Rom
{
Machine = machine,
Source = source
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.AddItem(datItem, statsOnly: false);
@@ -287,8 +317,10 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void StripSceneDatesFromItems_ItemsDB()
{
Machine machine = new Machine();
machine.Name = "10.10.10-machine-name";
Machine machine = new Machine
{
Name = "10.10.10-machine-name"
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
_ = datFile.AddMachineDB(machine);

View File

@@ -255,80 +255,80 @@ namespace SabreTools.Metadata.DatFiles.Test
[Data.Models.Metadata.Machine.AdjusterKey] = new Data.Models.Metadata.Adjuster[] { CreateMetadataAdjuster() },
[Data.Models.Metadata.Machine.ArchiveKey] = new Data.Models.Metadata.Archive[] { CreateMetadataArchive() },
[Data.Models.Metadata.Machine.BiosSetKey] = new Data.Models.Metadata.BiosSet[] { CreateMetadataBiosSet() },
[Data.Models.Metadata.Machine.BoardKey] = "board",
[Data.Models.Metadata.Machine.ButtonsKey] = "buttons",
Board = "board",
Buttons = "buttons",
[Data.Models.Metadata.Machine.CategoryKey] = "category",
[Data.Models.Metadata.Machine.ChipKey] = new Data.Models.Metadata.Chip[] { CreateMetadataChip() },
[Data.Models.Metadata.Machine.CloneOfKey] = "cloneof",
[Data.Models.Metadata.Machine.CloneOfIdKey] = "cloneofid",
CloneOf = "cloneof",
CloneOfId = "cloneofid",
[Data.Models.Metadata.Machine.CommentKey] = "comment",
[Data.Models.Metadata.Machine.CompanyKey] = "company",
Company = "company",
[Data.Models.Metadata.Machine.ConfigurationKey] = new Data.Models.Metadata.Configuration[] { CreateMetadataConfiguration() },
[Data.Models.Metadata.Machine.ControlKey] = "control",
[Data.Models.Metadata.Machine.CountryKey] = "country",
Control = "control",
Country = "country",
Description = "description",
[Data.Models.Metadata.Machine.DeviceKey] = new Data.Models.Metadata.Device[] { CreateMetadataDevice() },
[Data.Models.Metadata.Machine.DeviceRefKey] = new Data.Models.Metadata.DeviceRef[] { CreateMetadataDeviceRef() },
[Data.Models.Metadata.Machine.DipSwitchKey] = new Data.Models.Metadata.DipSwitch[] { CreateMetadataDipSwitch() },
[Data.Models.Metadata.Machine.DirNameKey] = "dirname",
DirName = "dirname",
[Data.Models.Metadata.Machine.DiskKey] = new Data.Models.Metadata.Disk[] { CreateMetadataDisk() },
[Data.Models.Metadata.Machine.DisplayCountKey] = "displaycount",
DisplayCount = "displaycount",
[Data.Models.Metadata.Machine.DisplayKey] = new Data.Models.Metadata.Display[] { CreateMetadataDisplay() },
[Data.Models.Metadata.Machine.DisplayTypeKey] = "displaytype",
DisplayType = "displaytype",
[Data.Models.Metadata.Machine.DriverKey] = CreateMetadataDriver(),
[Data.Models.Metadata.Machine.DumpKey] = new Data.Models.Metadata.Dump[] { CreateMetadataDump() },
[Data.Models.Metadata.Machine.DuplicateIDKey] = "duplicateid",
[Data.Models.Metadata.Machine.EmulatorKey] = "emulator",
[Data.Models.Metadata.Machine.ExtraKey] = "extra",
[Data.Models.Metadata.Machine.FavoriteKey] = "favorite",
DuplicateID = "duplicateid",
Emulator = "emulator",
Extra = "extra",
Favorite = "favorite",
[Data.Models.Metadata.Machine.FeatureKey] = new Data.Models.Metadata.Feature[] { CreateMetadataFeature() },
[Data.Models.Metadata.Machine.GenMSXIDKey] = "genmsxid",
[Data.Models.Metadata.Machine.HistoryKey] = "history",
[Data.Models.Metadata.Machine.IdKey] = "id",
[Data.Models.Metadata.Machine.Im1CRCKey] = HashType.CRC32.ZeroString,
[Data.Models.Metadata.Machine.Im2CRCKey] = HashType.CRC32.ZeroString,
[Data.Models.Metadata.Machine.ImageNumberKey] = "imagenumber",
GenMSXID = "genmsxid",
History = "history",
Id = "id",
Im1CRC = HashType.CRC32.ZeroString,
Im2CRC = HashType.CRC32.ZeroString,
ImageNumber = "imagenumber",
[Data.Models.Metadata.Machine.InfoKey] = new Data.Models.Metadata.Info[] { CreateMetadataInfo() },
[Data.Models.Metadata.Machine.InputKey] = CreateMetadataInput(),
IsBios = true,
IsDevice = true,
IsMechanical = true,
[Data.Models.Metadata.Machine.LanguageKey] = "language",
[Data.Models.Metadata.Machine.LocationKey] = "location",
[Data.Models.Metadata.Machine.ManufacturerKey] = "manufacturer",
Language = "language",
Location = "location",
Manufacturer = "manufacturer",
[Data.Models.Metadata.Machine.MediaKey] = new Data.Models.Metadata.Media[] { CreateMetadataMedia() },
Name = "name",
[Data.Models.Metadata.Machine.NotesKey] = "notes",
Notes = "notes",
[Data.Models.Metadata.Machine.PartKey] = new Data.Models.Metadata.Part[] { CreateMetadataPart() },
[Data.Models.Metadata.Machine.PlayedCountKey] = "playedcount",
[Data.Models.Metadata.Machine.PlayedTimeKey] = "playedtime",
[Data.Models.Metadata.Machine.PlayersKey] = "players",
PlayedCount = "playedcount",
PlayedTime = "playedtime",
Players = "players",
[Data.Models.Metadata.Machine.PortKey] = new Data.Models.Metadata.Port[] { CreateMetadataPort() },
[Data.Models.Metadata.Machine.PublisherKey] = "publisher",
Publisher = "publisher",
[Data.Models.Metadata.Machine.RamOptionKey] = new Data.Models.Metadata.RamOption[] { CreateMetadataRamOption() },
[Data.Models.Metadata.Machine.RebuildToKey] = "rebuildto",
RebuildTo = "rebuildto",
[Data.Models.Metadata.Machine.ReleaseKey] = new Data.Models.Metadata.Release[] { CreateMetadataRelease() },
[Data.Models.Metadata.Machine.ReleaseNumberKey] = "releasenumber",
ReleaseNumber = "releasenumber",
[Data.Models.Metadata.Machine.RomKey] = new Data.Models.Metadata.Rom[] { CreateMetadataRom() },
[Data.Models.Metadata.Machine.RomOfKey] = "romof",
[Data.Models.Metadata.Machine.RotationKey] = "rotation",
RomOf = "romof",
Rotation = "rotation",
Runnable = Data.Models.Metadata.Runnable.Yes,
[Data.Models.Metadata.Machine.SampleKey] = new Data.Models.Metadata.Sample[] { CreateMetadataSample() },
[Data.Models.Metadata.Machine.SampleOfKey] = "sampleof",
[Data.Models.Metadata.Machine.SaveTypeKey] = "savetype",
SampleOf = "sampleof",
SaveType = "savetype",
[Data.Models.Metadata.Machine.SharedFeatKey] = new Data.Models.Metadata.SharedFeat[] { CreateMetadataSharedFeat() },
[Data.Models.Metadata.Machine.SlotKey] = new Data.Models.Metadata.Slot[] { CreateMetadataSlot() },
[Data.Models.Metadata.Machine.SoftwareListKey] = new Data.Models.Metadata.SoftwareList[] { CreateMetadataSoftwareList() },
[Data.Models.Metadata.Machine.SoundKey] = CreateMetadataSound(),
[Data.Models.Metadata.Machine.SourceFileKey] = "sourcefile",
[Data.Models.Metadata.Machine.SourceRomKey] = "sourcerom",
[Data.Models.Metadata.Machine.StatusKey] = "status",
SourceFile = "sourcefile",
SourceRom = "sourcerom",
Status = "status",
Supported = Data.Models.Metadata.Supported.Yes,
[Data.Models.Metadata.Machine.SystemKey] = "system",
[Data.Models.Metadata.Machine.TagsKey] = "tags",
System = "system",
Tags = "tags",
[Data.Models.Metadata.Machine.TruripKey] = CreateMetadataTrurip(),
[Data.Models.Metadata.Machine.VideoKey] = new Data.Models.Metadata.Video[] { CreateMetadataVideo() },
[Data.Models.Metadata.Machine.YearKey] = "year",
Year = "year",
};
}
@@ -1068,55 +1068,55 @@ namespace SabreTools.Metadata.DatFiles.Test
#pragma warning disable IDE0051
private static void ValidateMachine(DatItems.Machine machine)
{
Assert.Equal("board", machine.ReadString(Data.Models.Metadata.Machine.BoardKey));
Assert.Equal("buttons", machine.ReadString(Data.Models.Metadata.Machine.ButtonsKey));
Assert.Equal("board", machine.Board);
Assert.Equal("buttons", machine.Buttons);
Assert.Equal("category", machine.ReadString(Data.Models.Metadata.Machine.CategoryKey));
Assert.Equal("cloneof", machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey));
Assert.Equal("cloneofid", machine.ReadString(Data.Models.Metadata.Machine.CloneOfIdKey));
Assert.Equal("cloneof", machine.CloneOf);
Assert.Equal("cloneofid", machine.CloneOfId);
Assert.Equal("comment", machine.ReadString(Data.Models.Metadata.Machine.CommentKey));
Assert.Equal("company", machine.ReadString(Data.Models.Metadata.Machine.CompanyKey));
Assert.Equal("control", machine.ReadString(Data.Models.Metadata.Machine.ControlKey));
Assert.Equal("country", machine.ReadString(Data.Models.Metadata.Machine.CountryKey));
Assert.Equal("company", machine.Company);
Assert.Equal("control", machine.Control);
Assert.Equal("country", machine.Country);
Assert.Equal("description", machine.Description);
Assert.Equal("dirname", machine.ReadString(Data.Models.Metadata.Machine.DirNameKey));
Assert.Equal("displaycount", machine.ReadString(Data.Models.Metadata.Machine.DisplayCountKey));
Assert.Equal("displaytype", machine.ReadString(Data.Models.Metadata.Machine.DisplayTypeKey));
Assert.Equal("duplicateid", machine.ReadString(Data.Models.Metadata.Machine.DuplicateIDKey));
Assert.Equal("emulator", machine.ReadString(Data.Models.Metadata.Machine.EmulatorKey));
Assert.Equal("extra", machine.ReadString(Data.Models.Metadata.Machine.ExtraKey));
Assert.Equal("favorite", machine.ReadString(Data.Models.Metadata.Machine.FavoriteKey));
Assert.Equal("genmsxid", machine.ReadString(Data.Models.Metadata.Machine.GenMSXIDKey));
Assert.Equal("history", machine.ReadString(Data.Models.Metadata.Machine.HistoryKey));
Assert.Equal("id", machine.ReadString(Data.Models.Metadata.Machine.IdKey));
Assert.Equal(HashType.CRC32.ZeroString, machine.ReadString(Data.Models.Metadata.Machine.Im1CRCKey));
Assert.Equal(HashType.CRC32.ZeroString, machine.ReadString(Data.Models.Metadata.Machine.Im2CRCKey));
Assert.Equal("imagenumber", machine.ReadString(Data.Models.Metadata.Machine.ImageNumberKey));
Assert.Equal("dirname", machine.DirName);
Assert.Equal("displaycount", machine.DisplayCount);
Assert.Equal("displaytype", machine.DisplayType);
Assert.Equal("duplicateid", machine.DuplicateID);
Assert.Equal("emulator", machine.Emulator);
Assert.Equal("extra", machine.Extra);
Assert.Equal("favorite", machine.Favorite);
Assert.Equal("genmsxid", machine.GenMSXID);
Assert.Equal("history", machine.History);
Assert.Equal("id", machine.Id);
Assert.Equal(HashType.CRC32.ZeroString, machine.Im1CRC);
Assert.Equal(HashType.CRC32.ZeroString, machine.Im2CRC);
Assert.Equal("imagenumber", machine.ImageNumber);
Assert.Equal(true, machine.IsBios);
Assert.Equal(true, machine.IsDevice);
Assert.Equal(true, machine.IsMechanical);
Assert.Equal("language", machine.ReadString(Data.Models.Metadata.Machine.LanguageKey));
Assert.Equal("location", machine.ReadString(Data.Models.Metadata.Machine.LocationKey));
Assert.Equal("manufacturer", machine.ReadString(Data.Models.Metadata.Machine.ManufacturerKey));
Assert.Equal("language", machine.Language);
Assert.Equal("location", machine.Location);
Assert.Equal("manufacturer", machine.Manufacturer);
Assert.Equal("name", machine.Name);
Assert.Equal("notes", machine.ReadString(Data.Models.Metadata.Machine.NotesKey));
Assert.Equal("playedcount", machine.ReadString(Data.Models.Metadata.Machine.PlayedCountKey));
Assert.Equal("playedtime", machine.ReadString(Data.Models.Metadata.Machine.PlayedTimeKey));
Assert.Equal("players", machine.ReadString(Data.Models.Metadata.Machine.PlayersKey));
Assert.Equal("publisher", machine.ReadString(Data.Models.Metadata.Machine.PublisherKey));
Assert.Equal("rebuildto", machine.ReadString(Data.Models.Metadata.Machine.RebuildToKey));
Assert.Equal("releasenumber", machine.ReadString(Data.Models.Metadata.Machine.ReleaseNumberKey));
Assert.Equal("romof", machine.ReadString(Data.Models.Metadata.Machine.RomOfKey));
Assert.Equal("rotation", machine.ReadString(Data.Models.Metadata.Machine.RotationKey));
Assert.Equal("notes", machine.Notes);
Assert.Equal("playedcount", machine.PlayedCount);
Assert.Equal("playedtime", machine.PlayedTime);
Assert.Equal("players", machine.Players);
Assert.Equal("publisher", machine.Publisher);
Assert.Equal("rebuildto", machine.RebuildTo);
Assert.Equal("releasenumber", machine.ReleaseNumber);
Assert.Equal("romof", machine.RomOf);
Assert.Equal("rotation", machine.Rotation);
Assert.Equal(Data.Models.Metadata.Runnable.Yes, machine.Runnable);
Assert.Equal("sampleof", machine.ReadString(Data.Models.Metadata.Machine.SampleOfKey));
Assert.Equal("savetype", machine.ReadString(Data.Models.Metadata.Machine.SaveTypeKey));
Assert.Equal("sourcefile", machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey));
Assert.Equal("sourcerom", machine.ReadString(Data.Models.Metadata.Machine.SourceRomKey));
Assert.Equal("status", machine.ReadString(Data.Models.Metadata.Machine.StatusKey));
Assert.Equal("sampleof", machine.SampleOf);
Assert.Equal("savetype", machine.SaveType);
Assert.Equal("sourcefile", machine.SourceFile);
Assert.Equal("sourcerom", machine.SourceRom);
Assert.Equal("status", machine.Status);
Assert.Equal(Data.Models.Metadata.Supported.Yes, machine.Supported);
Assert.Equal("system", machine.ReadString(Data.Models.Metadata.Machine.SystemKey));
Assert.Equal("tags", machine.ReadString(Data.Models.Metadata.Machine.TagsKey));
Assert.Equal("year", machine.ReadString(Data.Models.Metadata.Machine.YearKey));
Assert.Equal("system", machine.System);
Assert.Equal("tags", machine.Tags);
Assert.Equal("year", machine.Year);
DatItems.Trurip? trurip = machine.Read<DatItems.Trurip>(Data.Models.Metadata.Machine.TruripKey);
ValidateTrurip(trurip);

View File

@@ -14,13 +14,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -56,13 +60,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -98,13 +106,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -143,13 +155,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -192,13 +208,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -234,13 +254,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -287,15 +311,21 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine deviceMachine = new Machine();
deviceMachine.Name = "device";
deviceMachine.IsDevice = true;
Machine deviceMachine = new Machine
{
Name = "device",
IsDevice = true
};
Machine slotOptionMachine = new Machine();
slotOptionMachine.Name = "slotoption";
Machine slotOptionMachine = new Machine
{
Name = "slotoption"
};
Machine itemMachine = new Machine();
itemMachine.Name = "machine";
Machine itemMachine = new Machine
{
Name = "machine"
};
DatItem deviceItem = new Sample();
deviceItem.SetName("device_item");
@@ -345,15 +375,21 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine deviceMachine = new Machine();
deviceMachine.Name = "device";
deviceMachine.IsDevice = true;
Machine deviceMachine = new Machine
{
Name = "device",
IsDevice = true
};
Machine slotOptionMachine = new Machine();
slotOptionMachine.Name = "slotoption";
Machine slotOptionMachine = new Machine
{
Name = "slotoption"
};
Machine itemMachine = new Machine();
itemMachine.Name = "machine";
Machine itemMachine = new Machine
{
Name = "machine"
};
DatItem deviceItem = new Sample();
deviceItem.SetName("device_item");
@@ -397,13 +433,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
RomOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -439,13 +479,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
RomOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -488,21 +532,29 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine biosMachine = new Machine();
biosMachine.Name = "bios";
biosMachine.IsBios = true;
Machine biosMachine = new Machine
{
Name = "bios",
IsBios = true
};
Machine deviceMachine = new Machine();
deviceMachine.Name = "device";
deviceMachine.IsDevice = true;
Machine deviceMachine = new Machine
{
Name = "device",
IsDevice = true
};
DatItem biosItem = new Rom();
biosItem.Machine = biosMachine;
biosItem.Source = source;
DatItem biosItem = new Rom
{
Machine = biosMachine,
Source = source
};
DatItem deviceItem = new Rom();
deviceItem.Machine = deviceMachine;
deviceItem.Source = source;
DatItem deviceItem = new Rom
{
Machine = deviceMachine,
Source = source
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.AddItem(biosItem, statsOnly: false);
@@ -520,13 +572,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine biosMachine = new Machine();
biosMachine.Name = "bios";
biosMachine.IsBios = true;
Machine biosMachine = new Machine
{
Name = "bios",
IsBios = true
};
Machine deviceMachine = new Machine();
deviceMachine.Name = "device";
deviceMachine.IsDevice = true;
Machine deviceMachine = new Machine
{
Name = "device",
IsDevice = true
};
DatItem biosItem = new Rom();
DatItem deviceItem = new Rom();
@@ -553,13 +609,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
parentMachine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "romof");
Machine parentMachine = new Machine
{
Name = "parent",
RomOf = "romof"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent"
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -592,7 +652,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Machine? actualMachine = actual.Machine;
Assert.NotNull(actualMachine);
Assert.Equal("child", actualMachine.Name);
Assert.Equal("romof", actualMachine.ReadString(Data.Models.Metadata.Machine.RomOfKey));
Assert.Equal("romof", actualMachine.RomOf);
}
[Fact]
@@ -600,13 +660,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
parentMachine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "romof");
Machine parentMachine = new Machine
{
Name = "parent",
RomOf = "romof"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "parent");
Machine childMachine = new Machine
{
Name = "child",
CloneOf = "parent"
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -642,7 +706,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Machine? actualMachine = datFile.GetMachineForItemDB(actual).Value;
Assert.NotNull(actualMachine);
Assert.Equal("child", actualMachine.Name);
Assert.Equal("romof", actualMachine.ReadString(Data.Models.Metadata.Machine.RomOfKey));
Assert.Equal("romof", actualMachine.RomOf);
}
#endregion
@@ -654,13 +718,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
RomOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -700,13 +768,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine parentMachine = new Machine();
parentMachine.Name = "parent";
Machine parentMachine = new Machine
{
Name = "parent"
};
Machine childMachine = new Machine();
childMachine.Name = "child";
childMachine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "parent");
childMachine.IsBios = true;
Machine childMachine = new Machine
{
Name = "child",
RomOf = "parent",
IsBios = true
};
DatItem parentItem = new Rom() { Size = 12345 };
parentItem.SetName("parent_rom");
@@ -753,15 +825,19 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
machine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "XXXXXX");
machine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "XXXXXX");
machine.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, "XXXXXX");
Machine machine = new Machine
{
Name = "machine",
CloneOf = "cloneof",
RomOf = "romof",
SampleOf = "sampleof"
};
DatItem datItem = new Rom();
datItem.Machine = machine;
datItem.Source = source;
DatItem datItem = new Rom
{
Machine = machine,
Source = source
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.AddItem(datItem, statsOnly: false);
@@ -772,9 +848,9 @@ namespace SabreTools.Metadata.DatFiles.Test
DatItem actualItem = Assert.Single(datFile.GetItemsForBucket("machine"));
Machine? actual = actualItem.Machine;
Assert.NotNull(actual);
Assert.Null(actual.ReadString(Data.Models.Metadata.Machine.CloneOfKey));
Assert.Null(actual.ReadString(Data.Models.Metadata.Machine.RomOfKey));
Assert.Null(actual.ReadString(Data.Models.Metadata.Machine.SampleOfKey));
Assert.Null(actual.CloneOf);
Assert.Null(actual.RomOf);
Assert.Null(actual.SampleOf);
}
[Fact]
@@ -782,11 +858,13 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
machine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, "XXXXXX");
machine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, "XXXXXX");
machine.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, "XXXXXX");
Machine machine = new Machine
{
Name = "machine",
CloneOf = "cloneof",
RomOf = "romof",
SampleOf = "sampleof"
};
DatItem datItem = new Rom();
@@ -799,9 +877,9 @@ namespace SabreTools.Metadata.DatFiles.Test
datFile.RemoveMachineRelationshipTags();
Machine actual = Assert.Single(datFile.GetMachinesDB()).Value;
Assert.Null(actual.ReadString(Data.Models.Metadata.Machine.CloneOfKey));
Assert.Null(actual.ReadString(Data.Models.Metadata.Machine.RomOfKey));
Assert.Null(actual.ReadString(Data.Models.Metadata.Machine.SampleOfKey));
Assert.Null(actual.CloneOf);
Assert.Null(actual.RomOf);
Assert.Null(actual.SampleOf);
}
#endregion

View File

@@ -421,55 +421,55 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateMetadataMachine(Data.Models.Metadata.Machine machine)
{
Assert.Equal("board", machine.ReadString(Data.Models.Metadata.Machine.BoardKey));
Assert.Equal("buttons", machine.ReadString(Data.Models.Metadata.Machine.ButtonsKey));
Assert.Equal("board", machine.Board);
Assert.Equal("buttons", machine.Buttons);
Assert.Equal("category", machine.ReadString(Data.Models.Metadata.Machine.CategoryKey));
Assert.Equal("cloneof", machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey));
Assert.Equal("cloneofid", machine.ReadString(Data.Models.Metadata.Machine.CloneOfIdKey));
Assert.Equal("cloneof", machine.CloneOf);
Assert.Equal("cloneofid", machine.CloneOfId);
Assert.Equal("comment", machine.ReadString(Data.Models.Metadata.Machine.CommentKey));
Assert.Equal("company", machine.ReadString(Data.Models.Metadata.Machine.CompanyKey));
Assert.Equal("control", machine.ReadString(Data.Models.Metadata.Machine.ControlKey));
Assert.Equal("country", machine.ReadString(Data.Models.Metadata.Machine.CountryKey));
Assert.Equal("company", machine.Company);
Assert.Equal("control", machine.Control);
Assert.Equal("country", machine.Country);
Assert.Equal("description", machine.Description);
Assert.Equal("dirname", machine.ReadString(Data.Models.Metadata.Machine.DirNameKey));
Assert.Equal("displaycount", machine.ReadString(Data.Models.Metadata.Machine.DisplayCountKey));
Assert.Equal("displaytype", machine.ReadString(Data.Models.Metadata.Machine.DisplayTypeKey));
Assert.Equal("duplicateid", machine.ReadString(Data.Models.Metadata.Machine.DuplicateIDKey));
Assert.Equal("emulator", machine.ReadString(Data.Models.Metadata.Machine.EmulatorKey));
Assert.Equal("extra", machine.ReadString(Data.Models.Metadata.Machine.ExtraKey));
Assert.Equal("favorite", machine.ReadString(Data.Models.Metadata.Machine.FavoriteKey));
Assert.Equal("genmsxid", machine.ReadString(Data.Models.Metadata.Machine.GenMSXIDKey));
Assert.Equal("history", machine.ReadString(Data.Models.Metadata.Machine.HistoryKey));
Assert.Equal("id", machine.ReadString(Data.Models.Metadata.Machine.IdKey));
Assert.Equal(HashType.CRC32.ZeroString, machine.ReadString(Data.Models.Metadata.Machine.Im1CRCKey));
Assert.Equal(HashType.CRC32.ZeroString, machine.ReadString(Data.Models.Metadata.Machine.Im2CRCKey));
Assert.Equal("imagenumber", machine.ReadString(Data.Models.Metadata.Machine.ImageNumberKey));
Assert.Equal("dirname", machine.DirName);
Assert.Equal("displaycount", machine.DisplayCount);
Assert.Equal("displaytype", machine.DisplayType);
Assert.Equal("duplicateid", machine.DuplicateID);
Assert.Equal("emulator", machine.Emulator);
Assert.Equal("extra", machine.Extra);
Assert.Equal("favorite", machine.Favorite);
Assert.Equal("genmsxid", machine.GenMSXID);
Assert.Equal("history", machine.History);
Assert.Equal("id", machine.Id);
Assert.Equal(HashType.CRC32.ZeroString, machine.Im1CRC);
Assert.Equal(HashType.CRC32.ZeroString, machine.Im2CRC);
Assert.Equal("imagenumber", machine.ImageNumber);
Assert.Equal(true, machine.IsBios);
Assert.Equal(true, machine.IsDevice);
Assert.Equal(true, machine.IsMechanical);
Assert.Equal("language", machine.ReadString(Data.Models.Metadata.Machine.LanguageKey));
Assert.Equal("location", machine.ReadString(Data.Models.Metadata.Machine.LocationKey));
Assert.Equal("manufacturer", machine.ReadString(Data.Models.Metadata.Machine.ManufacturerKey));
Assert.Equal("language", machine.Language);
Assert.Equal("location", machine.Location);
Assert.Equal("manufacturer", machine.Manufacturer);
Assert.Equal("name", machine.Name);
Assert.Equal("notes", machine.ReadString(Data.Models.Metadata.Machine.NotesKey));
Assert.Equal("playedcount", machine.ReadString(Data.Models.Metadata.Machine.PlayedCountKey));
Assert.Equal("playedtime", machine.ReadString(Data.Models.Metadata.Machine.PlayedTimeKey));
Assert.Equal("players", machine.ReadString(Data.Models.Metadata.Machine.PlayersKey));
Assert.Equal("publisher", machine.ReadString(Data.Models.Metadata.Machine.PublisherKey));
Assert.Equal("rebuildto", machine.ReadString(Data.Models.Metadata.Machine.RebuildToKey));
Assert.Equal("releasenumber", machine.ReadString(Data.Models.Metadata.Machine.ReleaseNumberKey));
Assert.Equal("romof", machine.ReadString(Data.Models.Metadata.Machine.RomOfKey));
Assert.Equal("rotation", machine.ReadString(Data.Models.Metadata.Machine.RotationKey));
Assert.Equal("notes", machine.Notes);
Assert.Equal("playedcount", machine.PlayedCount);
Assert.Equal("playedtime", machine.PlayedTime);
Assert.Equal("players", machine.Players);
Assert.Equal("publisher", machine.Publisher);
Assert.Equal("rebuildto", machine.RebuildTo);
Assert.Equal("releasenumber", machine.ReleaseNumber);
Assert.Equal("romof", machine.RomOf);
Assert.Equal("rotation", machine.Rotation);
Assert.Equal(Data.Models.Metadata.Runnable.Yes, machine.Runnable);
Assert.Equal("sampleof", machine.ReadString(Data.Models.Metadata.Machine.SampleOfKey));
Assert.Equal("savetype", machine.ReadString(Data.Models.Metadata.Machine.SaveTypeKey));
Assert.Equal("sourcefile", machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey));
Assert.Equal("sourcerom", machine.ReadString(Data.Models.Metadata.Machine.SourceRomKey));
Assert.Equal("status", machine.ReadString(Data.Models.Metadata.Machine.StatusKey));
Assert.Equal("sampleof", machine.SampleOf);
Assert.Equal("savetype", machine.SaveType);
Assert.Equal("sourcefile", machine.SourceFile);
Assert.Equal("sourcerom", machine.SourceRom);
Assert.Equal("status", machine.Status);
Assert.Equal(Data.Models.Metadata.Supported.Yes, machine.Supported);
Assert.Equal("system", machine.ReadString(Data.Models.Metadata.Machine.SystemKey));
Assert.Equal("tags", machine.ReadString(Data.Models.Metadata.Machine.TagsKey));
Assert.Equal("year", machine.ReadString(Data.Models.Metadata.Machine.YearKey));
Assert.Equal("system", machine.System);
Assert.Equal("tags", machine.Tags);
Assert.Equal("year", machine.Year);
Data.Models.Metadata.Adjuster[]? adjusters = machine.ReadArray<Data.Models.Metadata.Adjuster>(Data.Models.Metadata.Machine.AdjusterKey);
Assert.NotNull(adjusters);

View File

@@ -30,11 +30,15 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "key";
Machine machine = new Machine
{
Name = "key"
};
DatItem rom = new Rom();
rom.SetName("rom");
DatItem rom = new Rom
{
Name = "rom"
};
rom.Write(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
rom.Source = source;
rom.Machine = machine;
@@ -72,12 +76,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem datItem = new Rom();
datItem.Source = source;
datItem.Machine = machine;
DatItem datItem = new Rom
{
Source = source,
Machine = machine
};
DatFile datFile = new Logiqx(datFile: null, useGame: false);
datFile.AddItem(datItem, statsOnly: false);
@@ -91,8 +99,10 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem datItem = new Rom();
@@ -236,8 +246,10 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void SetHeaderTest()
{
DatHeader datHeader = new DatHeader();
datHeader.Name = "name";
DatHeader datHeader = new DatHeader
{
Name = "name"
};
DatFile? datFile = new Logiqx(datFile: null, useGame: false);
datFile.Header.Name = "notname";
@@ -254,8 +266,10 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void SetModifiersTest()
{
DatModifiers datModifiers = new DatModifiers();
datModifiers.AddExtension = ".new";
DatModifiers datModifiers = new DatModifiers
{
AddExtension = ".new"
};
DatFile? datFile = new Logiqx(datFile: null, useGame: false);
datFile.Modifiers.AddExtension = ".old";
@@ -1328,11 +1342,15 @@ namespace SabreTools.Metadata.DatFiles.Test
bool gameName,
string expected)
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.SetName("name");
DatItem item = new Rom
{
Name = "name"
};
item.Write(Data.Models.Metadata.Rom.SHA1Key, HashType.SHA1.ZeroString);
DatFile? datFile = new Logiqx(datFile: null, useGame: false);
@@ -1362,14 +1380,19 @@ namespace SabreTools.Metadata.DatFiles.Test
string fix = string.Empty;
string expected = string.Empty;
Machine machine = new Machine();
machine.Name = "machine";
machine.Write(Data.Models.Metadata.Machine.ManufacturerKey, "manufacturer");
machine.Write(Data.Models.Metadata.Machine.PublisherKey, "publisher");
Machine machine = new Machine
{
Name = "machine",
Manufacturer = "manufacturer",
Publisher = "publisher"
};
machine.Write(Data.Models.Metadata.Machine.CategoryKey, "category");
DatItem item = new Rom() { Size = 12345 };
item.SetName("name");
DatItem item = new Rom
{
Name = "name",
Size = 12345,
};
item.Write(Data.Models.Metadata.Rom.CRC16Key, "crc16");
item.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
item.Write(Data.Models.Metadata.Rom.CRC64Key, "crc64");
@@ -1394,14 +1417,18 @@ namespace SabreTools.Metadata.DatFiles.Test
string fix = "%game%_%machine%_%name%_%manufacturer%_%publisher%_%category%_%crc16%_%crc%_%crc64%_%md2%_%md4%_%md5%_%ripemd128%_%ripemd160%_%sha1%_%sha256%_%sha384%_%sha512%_%size%_%spamsum%";
string expected = "machine_machine_name_manufacturer_publisher_category______md5___sha1_____";
Machine machine = new Machine();
machine.Name = "machine";
machine.Write(Data.Models.Metadata.Machine.ManufacturerKey, "manufacturer");
machine.Write(Data.Models.Metadata.Machine.PublisherKey, "publisher");
Machine machine = new Machine
{
Name = "machine",
Manufacturer = "manufacturer",
Publisher = "publisher"
};
machine.Write(Data.Models.Metadata.Machine.CategoryKey, "category");
DatItem item = new Disk();
item.SetName("name");
DatItem item = new Disk
{
Name = "name"
};
item.Write(Data.Models.Metadata.Disk.MD5Key, "md5");
item.Write(Data.Models.Metadata.Disk.SHA1Key, "sha1");
@@ -1415,10 +1442,12 @@ namespace SabreTools.Metadata.DatFiles.Test
string fix = "%game%_%machine%_%name%_%manufacturer%_%publisher%_%category%_%crc16%_%crc%_%crc64%_%md2%_%md4%_%md5%_%ripemd128%_%ripemd160%_%sha1%_%sha256%_%sha384%_%sha512%_%size%_%spamsum%";
string expected = "machine_machine_name.bin_manufacturer_publisher_category__00000000____d41d8cd98f00b204e9800998ecf8427e___da39a3ee5e6b4b0d3255bfef95601890afd80709_e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855___12345_";
Machine machine = new Machine();
machine.Name = "machine";
machine.Write(Data.Models.Metadata.Machine.ManufacturerKey, "manufacturer");
machine.Write(Data.Models.Metadata.Machine.PublisherKey, "publisher");
Machine machine = new Machine
{
Name = "machine",
Manufacturer = "manufacturer",
Publisher = "publisher"
};
machine.Write(Data.Models.Metadata.Machine.CategoryKey, "category");
DatItem item = new DatItems.Formats.File
@@ -1442,20 +1471,22 @@ namespace SabreTools.Metadata.DatFiles.Test
string fix = "%game%_%machine%_%name%_%manufacturer%_%publisher%_%category%_%crc16%_%crc%_%crc64%_%md2%_%md4%_%md5%_%ripemd128%_%ripemd160%_%sha1%_%sha256%_%sha384%_%sha512%_%size%_%spamsum%";
string expected = "machine_machine_name_manufacturer_publisher_category______md5___sha1_sha256____spamsum";
Machine machine = new Machine();
machine.Name = "machine";
machine.Write(Data.Models.Metadata.Machine.ManufacturerKey, "manufacturer");
machine.Write(Data.Models.Metadata.Machine.PublisherKey, "publisher");
Machine machine = new Machine
{
Name = "machine",
Manufacturer = "manufacturer",
Publisher = "publisher"
};
machine.Write(Data.Models.Metadata.Machine.CategoryKey, "category");
DatItem item = new Media
{
Name = "name",
MD5 = "md5",
SHA1 = "sha1",
SHA256 = "sha256",
SpamSum = "spamsum",
};
item.SetName("name");
string actual = DatFile.FormatPrefixPostfix(item, machine, fix);
Assert.Equal(expected, actual);
@@ -1467,14 +1498,19 @@ namespace SabreTools.Metadata.DatFiles.Test
string fix = "%game%_%machine%_%name%_%manufacturer%_%publisher%_%category%_%crc16%_%crc%_%crc64%_%md2%_%md4%_%md5%_%ripemd128%_%ripemd160%_%sha1%_%sha256%_%sha384%_%sha512%_%size%_%spamsum%";
string expected = "machine_machine_name_manufacturer_publisher_category_crc16_crc_crc64_md2_md4_md5_ripemd128_ripemd160_sha1_sha256_sha384_sha512_12345_spamsum";
Machine machine = new Machine();
machine.Name = "machine";
machine.Write(Data.Models.Metadata.Machine.ManufacturerKey, "manufacturer");
machine.Write(Data.Models.Metadata.Machine.PublisherKey, "publisher");
Machine machine = new Machine
{
Name = "machine",
Manufacturer = "manufacturer",
Publisher = "publisher"
};
machine.Write(Data.Models.Metadata.Machine.CategoryKey, "category");
DatItem item = new Rom() { Size = 12345 };
item.SetName("name");
DatItem item = new Rom
{
Name = "name",
Size = 12345,
};
item.Write(Data.Models.Metadata.Rom.CRC16Key, "crc16");
item.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
item.Write(Data.Models.Metadata.Rom.CRC64Key, "crc64");
@@ -1524,7 +1560,10 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ProcessNullifiedItem_SizeNonNull()
{
DatItem item = new Rom() { Size = 12345 };
DatItem item = new Rom()
{
Size = 12345
};
DatItem actual = DatFile.ProcessNullifiedItem(item);
Rom? rom = actual as Rom;
@@ -1946,14 +1985,18 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ResolveNames_SingleItem_Single()
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
Source source = new Source(0);
Rom romA = new Rom();
romA.SetName("name");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "name",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romA.Machine = (Machine)machine.Clone();
romA.Source = (Source)source.Clone();
@@ -1974,21 +2017,27 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ResolveNames_NonDuplicate_AllUntouched()
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
Source source = new Source(0);
Rom romA = new Rom();
romA.SetName("romA");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "romA",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romA.Machine = (Machine)machine.Clone();
romA.Source = (Source)source.Clone();
Rom romB = new Rom();
romB.SetName("romB");
romB.Size = 23456;
Rom romB = new Rom
{
Name = "romB",
Size = 23456
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
romB.Machine = (Machine)machine.Clone();
romB.Source = (Source)source.Clone();
@@ -2016,21 +2065,27 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ResolveNames_AllDuplicate_Single()
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
Source source = new Source(0);
Rom romA = new Rom();
romA.SetName("rom");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "rom",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romA.Machine = (Machine)machine.Clone();
romA.Source = (Source)source.Clone();
Rom romB = new Rom();
romB.SetName("rom");
romB.Size = 12345;
Rom romB = new Rom
{
Name = "rom",
Size = 12345
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romB.Machine = (Machine)machine.Clone();
romB.Source = (Source)source.Clone();
@@ -2051,21 +2106,27 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ResolveNames_NameMatch_SingleRenamed()
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
Source source = new Source(0);
Rom romA = new Rom();
romA.SetName("rom");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "rom",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romA.Machine = (Machine)machine.Clone();
romA.Source = (Source)source.Clone();
Rom romB = new Rom();
romB.SetName("rom");
romB.Size = 23456;
Rom romB = new Rom
{
Name = "rom",
Size = 23456
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
romB.Machine = (Machine)machine.Clone();
romB.Source = (Source)source.Clone();
@@ -2108,14 +2169,18 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ResolveNamesDB_SingleItem_Single()
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
Source source = new Source(0);
Rom romA = new Rom();
romA.SetName("name");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "name",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romA.Machine = (Machine)machine.Clone();
romA.Source = (Source)source.Clone();
@@ -2138,21 +2203,27 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ResolveNamesDB_NonDuplicate_AllUntouched()
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
Source source = new Source(0);
Rom romA = new Rom();
romA.SetName("romA");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "romA",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romA.Machine = (Machine)machine.Clone();
romA.Source = (Source)source.Clone();
Rom romB = new Rom();
romB.SetName("romB");
romB.Size = 23456;
Rom romB = new Rom
{
Name = "romB",
Size = 23456
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
romB.Machine = (Machine)machine.Clone();
romB.Source = (Source)source.Clone();
@@ -2185,22 +2256,28 @@ namespace SabreTools.Metadata.DatFiles.Test
{
DatFile datFile = new Logiqx(null, useGame: false);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
long machineIndex = datFile.AddMachineDB(machine);
Source source = new Source(0);
long sourceIndex = datFile.AddSourceDB(source);
Rom romA = new Rom();
romA.SetName("rom");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "rom",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
long romAIndex = datFile.AddItemDB(romA, machineIndex, sourceIndex, statsOnly: false);
Rom romB = new Rom();
romB.SetName("rom");
romB.Size = 12345;
Rom romB = new Rom
{
Name = "rom",
Size = 12345
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
long romBIndex = datFile.AddItemDB(romB, machineIndex, sourceIndex, statsOnly: false);
@@ -2222,21 +2299,27 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ResolveNamesDB_NameMatch_SingleRenamed()
{
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
Source source = new Source(0);
Rom romA = new Rom();
romA.SetName("rom");
romA.Size = 12345;
Rom romA = new Rom
{
Name = "rom",
Size = 12345
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
romA.Machine = (Machine)machine.Clone();
romA.Source = (Source)source.Clone();
Rom romB = new Rom();
romB.SetName("rom");
romB.Size = 23456;
Rom romB = new Rom
{
Name = "rom",
Size = 23456
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
romB.Machine = (Machine)machine.Clone();
romB.Source = (Source)source.Clone();
@@ -2281,8 +2364,10 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void ShouldIgnore_RemoveSet_True()
{
DatItem? datItem = new Rom();
datItem.RemoveFlag = true;
DatItem? datItem = new Rom
{
RemoveFlag = true
};
DatFile datFile = new Logiqx(null, useGame: false);
bool actual = datFile.ShouldIgnore(datItem, ignoreBlanks: true);

View File

@@ -251,9 +251,10 @@ namespace SabreTools.Metadata.DatFiles.Test
/// </summary>
private static Disk CreateDisk()
{
var disk = new Disk();
disk.Status = ItemStatus.Good;
var disk = new Disk
{
Status = ItemStatus.Good
};
disk.Write<string?>(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
disk.Write<string?>(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
@@ -282,12 +283,13 @@ namespace SabreTools.Metadata.DatFiles.Test
/// </summary>
private static Media CreateMedia()
{
var media = new Media();
media.MD5 = HashType.MD5.ZeroString;
media.SHA1 = HashType.SHA1.ZeroString;
media.SHA256 = HashType.SHA256.ZeroString;
media.SpamSum = HashType.SpamSum.ZeroString;
var media = new Media
{
MD5 = HashType.MD5.ZeroString,
SHA1 = HashType.SHA1.ZeroString,
SHA256 = HashType.SHA256.ZeroString,
SpamSum = HashType.SpamSum.ZeroString
};
return media;
}
@@ -297,10 +299,11 @@ namespace SabreTools.Metadata.DatFiles.Test
/// </summary>
private static Rom CreateRom()
{
var rom = new Rom();
rom.Status = ItemStatus.Good;
rom.Size = 1;
var rom = new Rom
{
Status = ItemStatus.Good,
Size = 1
};
rom.Write<string?>(Data.Models.Metadata.Rom.CRC16Key, HashType.CRC16.ZeroString);
rom.Write<string?>(Data.Models.Metadata.Rom.CRCKey, HashType.CRC32.ZeroString);
rom.Write<string?>(Data.Models.Metadata.Rom.CRC64Key, HashType.CRC64.ZeroString);

View File

@@ -134,8 +134,11 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom() { Size = 12345 };
rom.SetName("item");
DatItem rom = new Rom()
{
Name = "item",
Size = 12345,
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "deadbeef");
var dict = new ItemDictionaryDB();
@@ -157,8 +160,11 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom() { Size = 12345 };
rom.SetName("item");
DatItem rom = new Rom()
{
Name = "item",
Size = 12345,
};
var dict = new ItemDictionaryDB();
long sourceIndex = dict.AddSource(source);
@@ -179,8 +185,10 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom();
rom.SetName("item");
DatItem rom = new Rom
{
Name = "item"
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "deadbeef");
var dict = new ItemDictionaryDB();
@@ -202,8 +210,10 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom();
rom.SetName("item");
DatItem rom = new Rom
{
Name = "item"
};
var dict = new ItemDictionaryDB();
long sourceIndex = dict.AddSource(source);
@@ -224,8 +234,10 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem item = new Rom();
item.SetName("item");
DatItem item = new Rom
{
Name = "item"
};
var dict = new ItemDictionaryDB();
long sourceIndex = dict.AddSource(source);
@@ -241,8 +253,10 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem item = new Rom();
item.SetName("item");
DatItem item = new Rom
{
Name = "item"
};
var dict = new ItemDictionaryDB();
long sourceIndex = dict.AddSource(source);
@@ -292,16 +306,24 @@ namespace SabreTools.Metadata.DatFiles.Test
// Setup the items
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom()
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom()
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
rom2.RemoveFlag = true;
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
@@ -329,8 +351,10 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
@@ -349,8 +373,10 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
@@ -369,11 +395,15 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.RemoveFlag = true;
DatItem item = new Rom
{
RemoveFlag = true
};
var dict = new ItemDictionaryDB();
long sourceIndex = dict.AddSource(source);
@@ -390,11 +420,15 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.RemoveFlag = true;
DatItem item = new Rom
{
RemoveFlag = true
};
var dict = new ItemDictionaryDB();
long sourceIndex = dict.AddSource(source);
@@ -411,8 +445,10 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
@@ -509,11 +545,15 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine origMachine = new Machine();
origMachine.Name = "original";
Machine origMachine = new Machine
{
Name = "original"
};
Machine newMachine = new Machine();
newMachine.Name = "new";
Machine newMachine = new Machine
{
Name = "new"
};
DatItem datItem = new Rom();
@@ -540,11 +580,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem datItem = new Rom() { Size = 1024 };
datItem.SetName("rom-1");
DatItem datItem = new Rom()
{
Name = "rom-1",
Size = 1024,
};
datItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
datItem.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
@@ -567,11 +612,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem datItem = new Rom() { Size = 1024 };
datItem.SetName("rom-1");
DatItem datItem = new Rom()
{
Name = "rom-1",
Size = 1024,
};
datItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
datItem.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
@@ -615,29 +665,45 @@ namespace SabreTools.Metadata.DatFiles.Test
// Setup the items
Source source = new Source(0, source: null);
Machine machine1 = new Machine();
machine1.Name = "game-1";
Machine machine1 = new Machine
{
Name = "game-1"
};
Machine machine2 = new Machine();
machine2.Name = "game-2";
Machine machine2 = new Machine
{
Name = "game-2"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
DatItem rom3 = new Rom() { Size = 1024 };
rom3.SetName("rom-3");
DatItem rom3 = new Rom
{
Name = "rom-3",
Size = 1024,
};
rom3.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
rom3.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "00000ea4014ce66679e7e17d56ac510f67e39e26");
DatItem rom4 = new Rom() { Size = 1024 };
rom4.SetName("rom-4");
DatItem rom4 = new Rom
{
Name = "rom-4",
Size = 1024,
};
rom4.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
rom4.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "00000151d437442e74e5134023fab8bf694a2487");
@@ -665,15 +731,23 @@ namespace SabreTools.Metadata.DatFiles.Test
// Setup the items
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
// Setup the dictionary
@@ -730,22 +804,30 @@ namespace SabreTools.Metadata.DatFiles.Test
Source? sourceB = new Source(1);
long sourceBIndex = dict.AddSource(sourceB);
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
long machineAIndex = dict.AddMachine(machineA);
Machine? machineB = new Machine();
machineB.Name = "name-same";
Machine? machineB = new Machine
{
Name = "name-same"
};
long machineBIndex = dict.AddMachine(machineB);
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "BEEFDEAD");
long romAIndex = dict.AddItem(romA, machineAIndex, sourceAIndex);
KeyValuePair<long, DatItem>? romAPair = new KeyValuePair<long, DatItem>(romAIndex, romA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romBIndex = dict.AddItem(romB, machineBIndex, sourceBIndex);
KeyValuePair<long, DatItem>? romBPair = new KeyValuePair<long, DatItem>(romBIndex, romB);
@@ -764,22 +846,30 @@ namespace SabreTools.Metadata.DatFiles.Test
Source? sourceB = new Source(1);
long sourceBIndex = dict.AddSource(sourceB);
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
long machineAIndex = dict.AddMachine(machineA);
Machine? machineB = new Machine();
machineB.Name = "name-same";
Machine? machineB = new Machine
{
Name = "name-same"
};
long machineBIndex = dict.AddMachine(machineB);
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romAIndex = dict.AddItem(romA, machineAIndex, sourceAIndex);
KeyValuePair<long, DatItem>? romAPair = new KeyValuePair<long, DatItem>(romAIndex, romA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romBIndex = dict.AddItem(romB, machineBIndex, sourceBIndex);
KeyValuePair<long, DatItem>? romBPair = new KeyValuePair<long, DatItem>(romBIndex, romB);
@@ -798,22 +888,30 @@ namespace SabreTools.Metadata.DatFiles.Test
Source? sourceB = new Source(1);
long sourceBIndex = dict.AddSource(sourceB);
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
long machineAIndex = dict.AddMachine(machineA);
Machine? machineB = new Machine();
machineB.Name = "not-name-same";
Machine? machineB = new Machine
{
Name = "not-name-same"
};
long machineBIndex = dict.AddMachine(machineB);
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romAIndex = dict.AddItem(romA, machineAIndex, sourceAIndex);
KeyValuePair<long, DatItem>? romAPair = new KeyValuePair<long, DatItem>(romAIndex, romA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romBIndex = dict.AddItem(romB, machineBIndex, sourceBIndex);
KeyValuePair<long, DatItem>? romBPair = new KeyValuePair<long, DatItem>(romBIndex, romB);
@@ -832,22 +930,30 @@ namespace SabreTools.Metadata.DatFiles.Test
Source? sourceB = new Source(0);
long sourceBIndex = dict.AddSource(sourceB);
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
long machineAIndex = dict.AddMachine(machineA);
Machine? machineB = new Machine();
machineB.Name = "name-same";
Machine? machineB = new Machine
{
Name = "name-same"
};
long machineBIndex = dict.AddMachine(machineB);
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romAIndex = dict.AddItem(romA, machineAIndex, sourceAIndex);
KeyValuePair<long, DatItem>? romAPair = new KeyValuePair<long, DatItem>(romAIndex, romA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romBIndex = dict.AddItem(romB, machineBIndex, sourceBIndex);
KeyValuePair<long, DatItem>? romBPair = new KeyValuePair<long, DatItem>(romBIndex, romB);
@@ -866,22 +972,30 @@ namespace SabreTools.Metadata.DatFiles.Test
Source? sourceB = new Source(0);
long sourceBIndex = dict.AddSource(sourceB);
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
long machineAIndex = dict.AddMachine(machineA);
Machine? machineB = new Machine();
machineB.Name = "not-name-same";
Machine? machineB = new Machine
{
Name = "not-name-same"
};
long machineBIndex = dict.AddMachine(machineB);
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romAIndex = dict.AddItem(romA, machineAIndex, sourceAIndex);
KeyValuePair<long, DatItem>? romAPair = new KeyValuePair<long, DatItem>(romAIndex, romA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
long romBIndex = dict.AddItem(romB, machineBIndex, sourceBIndex);
KeyValuePair<long, DatItem>? romBPair = new KeyValuePair<long, DatItem>(romBIndex, romB);
@@ -902,15 +1016,23 @@ namespace SabreTools.Metadata.DatFiles.Test
// Setup the items
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
// Setup the dictionary
@@ -921,8 +1043,11 @@ namespace SabreTools.Metadata.DatFiles.Test
dict.AddItem(rom2, machineIndex, sourceIndex, statsOnly: false);
// Setup the test item
DatItem rom = new Rom() { Size = hasDuplicate ? 1024 : 2048 };
rom.SetName("rom-1");
DatItem rom = new Rom
{
Name = "rom-1",
Size = hasDuplicate ? 1024 : 2048,
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
var actual = dict.GetDuplicates(new KeyValuePair<long, DatItem>(-1, rom));
@@ -941,15 +1066,23 @@ namespace SabreTools.Metadata.DatFiles.Test
// Setup the items
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
// Setup the dictionary
@@ -960,8 +1093,11 @@ namespace SabreTools.Metadata.DatFiles.Test
dict.AddItem(rom2, machineIndex, sourceIndex, statsOnly: false);
// Setup the test item
DatItem rom = new Rom() { Size = expected ? 1024 : 2048 };
rom.SetName("rom-1");
DatItem rom = new Rom
{
Name = "rom-1",
Size = expected ? 1024 : 2048,
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
bool actual = dict.HasDuplicates(new KeyValuePair<long, DatItem>(-1, rom));
@@ -977,11 +1113,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom() { Size = 12345 };
item.SetName("rom");
DatItem item = new Rom
{
Name = "rom",
Size = 12345,
};
item.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
var dict = new ItemDictionaryDB();

View File

@@ -134,8 +134,11 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom() { Size = 12345 };
rom.SetName("item");
DatItem rom = new Rom()
{
Name = "item",
Size = 12345,
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "deadbeef");
rom.Source = source;
rom.Machine = machine;
@@ -157,10 +160,13 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom() { Size = 12345 };
rom.SetName("item");
rom.Source = source;
rom.Machine = machine;
DatItem rom = new Rom
{
Name = "item",
Size = 12345,
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(rom, statsOnly: false);
@@ -179,8 +185,10 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom();
rom.SetName("item");
DatItem rom = new Rom
{
Name = "item"
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "deadbeef");
rom.Source = source;
rom.Machine = machine;
@@ -202,10 +210,12 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem rom = new Rom();
rom.SetName("item");
rom.Source = source;
rom.Machine = machine;
DatItem rom = new Rom
{
Name = "item",
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(rom, statsOnly: false);
@@ -224,10 +234,12 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem item = new Rom();
item.SetName("item");
item.Source = source;
item.Machine = machine;
DatItem item = new Rom
{
Name = "item",
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(item, statsOnly: true);
@@ -241,10 +253,12 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem item = new Rom();
item.SetName("item");
item.Source = source;
item.Machine = machine;
DatItem item = new Rom
{
Name = "item",
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(item, statsOnly: false);
@@ -260,17 +274,25 @@ namespace SabreTools.Metadata.DatFiles.Test
public void ClearMarkedTest()
{
// Setup the items
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEAEEF");
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom1.CopyMachineInformation(machine);
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEAEEF");
rom2.RemoveFlag = true;
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
@@ -296,12 +318,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.Source = source;
item.Machine = machine;
DatItem item = new Rom
{
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(item, statsOnly: false);
@@ -316,12 +342,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.Source = source;
item.Machine = machine;
DatItem item = new Rom
{
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(item, statsOnly: false);
@@ -336,13 +366,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.RemoveFlag = true;
item.Source = source;
item.Machine = machine;
DatItem item = new Rom
{
RemoveFlag = true,
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(item, statsOnly: false);
@@ -357,13 +391,17 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.RemoveFlag = true;
item.Source = source;
item.Machine = machine;
DatItem item = new Rom
{
RemoveFlag = true,
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(item, statsOnly: false);
@@ -378,12 +416,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom();
item.Source = source;
item.Machine = machine;
DatItem item = new Rom
{
Source = source,
Machine = machine
};
var dict = new ItemDictionary();
_ = dict.AddItem(item, statsOnly: false);
@@ -400,8 +442,10 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void RemoveBucketTest()
{
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem datItem = new Rom() { Size = 1024 };
datItem.SetName("rom-1");
@@ -425,8 +469,10 @@ namespace SabreTools.Metadata.DatFiles.Test
[Fact]
public void RemoveItemTest()
{
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem datItem = new Rom() { Size = 1024 };
datItem.SetName("rom-1");
@@ -455,32 +501,48 @@ namespace SabreTools.Metadata.DatFiles.Test
public void BucketByTest(ItemKey itemKey, int expected)
{
// Setup the items
Machine machine1 = new Machine();
machine1.Name = "game-1";
Machine machine1 = new Machine
{
Name = "game-1"
};
Machine machine2 = new Machine();
machine2.Name = "game-2";
Machine machine2 = new Machine
{
Name = "game-2"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEAEEF");
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom1.CopyMachineInformation(machine1);
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEAEEF");
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
rom1.CopyMachineInformation(machine1);
DatItem rom3 = new Rom() { Size = 1024 };
rom3.SetName("rom-3");
DatItem rom3 = new Rom
{
Name = "rom-3",
Size = 1024,
};
rom3.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEAEEF");
rom3.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "00000ea4014ce66679e7e17d56ac510f67e39e26");
rom1.CopyMachineInformation(machine2);
DatItem rom4 = new Rom() { Size = 1024 };
rom4.SetName("rom-4");
DatItem rom4 = new Rom
{
Name = "rom-4",
Size = 1024,
};
rom4.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "DEAEEF");
rom4.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "00000151d437442e74e5134023fab8bf694a2487");
rom1.CopyMachineInformation(machine2);
@@ -504,16 +566,24 @@ namespace SabreTools.Metadata.DatFiles.Test
public void DeduplicateTest()
{
// Setup the items
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom1.CopyMachineInformation(machine);
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom2.CopyMachineInformation(machine);
@@ -555,20 +625,28 @@ namespace SabreTools.Metadata.DatFiles.Test
{
var dict = new ItemDictionary();
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
Machine? machineB = new Machine();
machineB.Name = "name-same";
Machine? machineB = new Machine
{
Name = "name-same"
};
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "BEEFDEAD");
romA.Source = new Source(0);
romA.CopyMachineInformation(machineA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romB.Source = new Source(1);
romB.CopyMachineInformation(machineB);
@@ -582,20 +660,28 @@ namespace SabreTools.Metadata.DatFiles.Test
{
var dict = new ItemDictionary();
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
Machine? machineB = new Machine();
machineB.Name = "name-same";
Machine? machineB = new Machine
{
Name = "name-same"
};
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romA.Source = new Source(0);
romA.CopyMachineInformation(machineA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romB.Source = new Source(1);
romB.CopyMachineInformation(machineB);
@@ -609,20 +695,28 @@ namespace SabreTools.Metadata.DatFiles.Test
{
var dict = new ItemDictionary();
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
Machine? machineB = new Machine();
machineB.Name = "not-name-same";
Machine? machineB = new Machine
{
Name = "not-name-same"
};
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romA.Source = new Source(0);
romA.CopyMachineInformation(machineA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romB.Source = new Source(1);
romB.CopyMachineInformation(machineB);
@@ -636,20 +730,28 @@ namespace SabreTools.Metadata.DatFiles.Test
{
var dict = new ItemDictionary();
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
Machine? machineB = new Machine();
machineB.Name = "name-same";
Machine? machineB = new Machine
{
Name = "name-same"
};
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romA.Source = new Source(0);
romA.CopyMachineInformation(machineA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romB.Source = new Source(0);
romB.CopyMachineInformation(machineB);
@@ -663,20 +765,28 @@ namespace SabreTools.Metadata.DatFiles.Test
{
var dict = new ItemDictionary();
Machine? machineA = new Machine();
machineA.Name = "name-same";
Machine? machineA = new Machine
{
Name = "name-same"
};
Machine? machineB = new Machine();
machineB.Name = "not-name-same";
Machine? machineB = new Machine
{
Name = "not-name-same"
};
var romA = new Rom();
romA.Name = "same-name";
var romA = new Rom
{
Name = "same-name"
};
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romA.Source = new Source(0);
romA.CopyMachineInformation(machineA);
var romB = new Rom();
romB.Name = "same-name";
var romB = new Rom
{
Name = "same-name"
};
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
romB.Source = new Source(0);
romB.CopyMachineInformation(machineB);
@@ -695,16 +805,24 @@ namespace SabreTools.Metadata.DatFiles.Test
public void GetDuplicatesTest(bool hasDuplicate, int expected)
{
// Setup the items
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom1.CopyMachineInformation(machine);
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
rom2.CopyMachineInformation(machine);
@@ -714,8 +832,11 @@ namespace SabreTools.Metadata.DatFiles.Test
dict.AddItem(rom2, statsOnly: false);
// Setup the test item
DatItem rom = new Rom() { Size = hasDuplicate ? 1024 : 2048 };
rom.SetName("rom-1");
DatItem rom = new Rom
{
Name = "rom-1",
Size = hasDuplicate ? 1024 : 2048,
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom.CopyMachineInformation(machine);
@@ -733,16 +854,24 @@ namespace SabreTools.Metadata.DatFiles.Test
public void HasDuplicatesTest(bool expected)
{
// Setup the items
Machine machine = new Machine();
machine.Name = "game-1";
Machine machine = new Machine
{
Name = "game-1"
};
DatItem rom1 = new Rom() { Size = 1024 };
rom1.SetName("rom-1");
DatItem rom1 = new Rom
{
Name = "rom-1",
Size = 1024,
};
rom1.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom1.CopyMachineInformation(machine);
DatItem rom2 = new Rom() { Size = 1024 };
rom2.SetName("rom-2");
DatItem rom2 = new Rom
{
Name = "rom-2",
Size = 1024,
};
rom2.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44");
rom1.CopyMachineInformation(machine);
@@ -752,8 +881,11 @@ namespace SabreTools.Metadata.DatFiles.Test
dict.AddItem("game-1", rom2);
// Setup the test item
DatItem rom = new Rom() { Size = expected ? 1024 : 2048 };
rom.SetName("rom-1");
DatItem rom = new Rom
{
Name = "rom-1",
Size = expected ? 1024 : 2048,
};
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6");
rom1.CopyMachineInformation(machine);
@@ -770,11 +902,16 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.Name = "machine";
Machine machine = new Machine
{
Name = "machine"
};
DatItem item = new Rom() { Size = 12345 };
item.SetName("rom");
DatItem item = new Rom
{
Name = "rom",
Size = 12345,
};
item.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
item.Source = source;
item.Machine = machine;

View File

@@ -332,8 +332,8 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the string values
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey)?.ToLowerInvariant();
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey)?.ToLowerInvariant();
string? cloneOf = machine.CloneOf?.ToLowerInvariant();
string? romOf = machine.RomOf?.ToLowerInvariant();
// Match on CloneOf first
if (!string.IsNullOrEmpty(cloneOf))
@@ -411,8 +411,8 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the string values
string? cloneOf = machineObj.ReadString(Data.Models.Metadata.Machine.CloneOfKey)?.ToLowerInvariant();
string? romOf = machineObj.ReadString(Data.Models.Metadata.Machine.RomOfKey)?.ToLowerInvariant();
string? cloneOf = machineObj.CloneOf?.ToLowerInvariant();
string? romOf = machineObj.RomOf?.ToLowerInvariant();
// Match on CloneOf first
if (!string.IsNullOrEmpty(cloneOf))
@@ -733,9 +733,9 @@ namespace SabreTools.Metadata.DatFiles
// Get the values to check against
string? machineName = machine.Name;
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? sampleOf = machine.ReadString(Data.Models.Metadata.Machine.SampleOfKey);
string? cloneOf = machine.CloneOf;
string? romOf = machine.RomOf;
string? sampleOf = machine.SampleOf;
// Update machine name
if (machineName is not null && mapping.TryGetValue(machineName, out string? mappedMachineName))
@@ -743,15 +743,15 @@ namespace SabreTools.Metadata.DatFiles
// Update cloneof
if (cloneOf is not null && mapping.TryGetValue(cloneOf, out string? mappedCloneOf))
machine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, mappedCloneOf);
machine.CloneOf = mappedCloneOf;
// Update romof
if (romOf is not null && mapping.TryGetValue(romOf, out string? mappedRomOf))
machine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, mappedRomOf);
machine.RomOf = mappedRomOf;
// Update sampleof
if (sampleOf is not null && mapping.TryGetValue(sampleOf, out string? mappedSampleOf))
machine.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, mappedSampleOf);
machine.SampleOf = mappedSampleOf;
}
#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER
});
@@ -774,9 +774,9 @@ namespace SabreTools.Metadata.DatFiles
// Get the values to check against
string? machineName = machine.Value.Name;
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? romOf = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? sampleOf = machine.Value.ReadString(Data.Models.Metadata.Machine.SampleOfKey);
string? cloneOf = machine.Value.CloneOf;
string? romOf = machine.Value.RomOf;
string? sampleOf = machine.Value.SampleOf;
// Update machine name
if (machineName is not null && mapping.TryGetValue(machineName, out string? mappedMachineName))
@@ -784,15 +784,15 @@ namespace SabreTools.Metadata.DatFiles
// Update cloneof
if (cloneOf is not null && mapping.TryGetValue(cloneOf, out string? mappedCloneOf))
machine.Value.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, mappedCloneOf);
machine.Value.CloneOf = mappedCloneOf;
// Update romof
if (romOf is not null && mapping.TryGetValue(romOf, out string? mappedRomOf))
machine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, mappedRomOf);
machine.Value.RomOf = mappedRomOf;
// Update sampleof
if (sampleOf is not null && mapping.TryGetValue(sampleOf, out string? mappedSampleOf))
machine.Value.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, mappedSampleOf);
machine.Value.SampleOf = mappedSampleOf;
}
}

View File

@@ -273,7 +273,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.CloneOf;
List<DatItem> parentItems = GetItemsForBucket(cloneOf);
if (cloneOf is null)
continue;
@@ -408,7 +408,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the clone parent
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.Value.CloneOf;
if (string.IsNullOrEmpty(cloneOf))
continue;
@@ -542,7 +542,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.CloneOf;
List<DatItem> parentItems = GetItemsForBucket(cloneOf);
if (parentItems.Count == 0)
continue;
@@ -562,10 +562,10 @@ namespace SabreTools.Metadata.DatFiles
// Now we want to get the parent romof tag and put it in each of the items
items = GetItemsForBucket(bucket);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.RomOf;
foreach (DatItem item in items)
{
item.Machine!.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
item.Machine!.RomOf = romof;
}
}
}
@@ -596,7 +596,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the clone parent
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.Value.CloneOf;
if (string.IsNullOrEmpty(cloneOf))
continue;
@@ -623,7 +623,7 @@ namespace SabreTools.Metadata.DatFiles
// Now we want to get the parent romof tag and put it in each of the items
items = GetItemsForBucketDB(bucket);
string? romof = parentMachine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = parentMachine.Value.RomOf;
foreach (var key in items.Keys)
{
var itemMachine = GetMachineForItemDB(key);
@@ -631,7 +631,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// TODO: Remove merge tags here
itemMachine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
itemMachine.Value.RomOf = romof;
}
}
}
@@ -981,7 +981,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.RomOf;
List<DatItem> parentItems = GetItemsForBucket(romOf);
if (parentItems.Count == 0)
continue;
@@ -1024,7 +1024,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.Value.RomOf;
Dictionary<long, DatItem> parentItems = GetItemsForBucketDB(romOf);
if (parentItems.Count == 0)
continue;
@@ -1163,7 +1163,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.CloneOf;
List<DatItem> parentItems = GetItemsForBucket(cloneOf);
if (parentItems.Count == 0)
continue;
@@ -1186,10 +1186,10 @@ namespace SabreTools.Metadata.DatFiles
// Now we want to get the parent romof tag and put it in each of the remaining items
items = GetItemsForBucket(bucket);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.RomOf;
foreach (DatItem item in items)
{
item.Machine!.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
item.Machine!.RomOf = romof;
}
}
}
@@ -1217,7 +1217,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.Value.CloneOf;
Dictionary<long, DatItem> parentItems = GetItemsForBucketDB(cloneOf);
if (parentItems is null || parentItems.Count == 0)
continue;
@@ -1238,14 +1238,14 @@ namespace SabreTools.Metadata.DatFiles
if (machine.Value is null)
continue;
string? romof = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = machine.Value.RomOf;
foreach (var item in items)
{
machine = GetMachineForItemDB(item.Key);
if (machine.Value is null)
continue;
machine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
machine.Value.RomOf = romof;
}
}
}
@@ -1273,7 +1273,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.RomOf;
List<DatItem> parentItems = GetItemsForBucket(romOf);
if (parentItems.Count == 0)
continue;
@@ -1320,7 +1320,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.Value.RomOf;
Dictionary<long, DatItem> parentItems = GetItemsForBucketDB(romOf);
if (parentItems.Count == 0)
continue;
@@ -1370,9 +1370,9 @@ namespace SabreTools.Metadata.DatFiles
if (machine is null)
continue;
machine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, null);
machine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, null);
machine.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, null);
machine.CloneOf = null;
machine.RomOf = null;
machine.SampleOf = null;
}
#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER
});
@@ -1404,9 +1404,9 @@ namespace SabreTools.Metadata.DatFiles
continue;
#endif
machine.Value.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, null);
machine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, null);
machine.Value.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, null);
machine.Value.CloneOf = null;
machine.Value.RomOf = null;
machine.Value.SampleOf = null;
#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER
});
#else

View File

@@ -84,11 +84,11 @@ namespace SabreTools.Metadata.DatFiles
if (trurip is not null)
{
var truripItem = trurip.ConvertToLogiqx();
truripItem.Publisher = machine.ReadString(Data.Models.Metadata.Machine.PublisherKey);
truripItem.Year = machine.ReadString(Data.Models.Metadata.Machine.YearKey);
truripItem.Players = machine.ReadString(Data.Models.Metadata.Machine.PlayersKey);
truripItem.Source = machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey);
truripItem.CloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
truripItem.Publisher = machine.Publisher;
truripItem.Year = machine.Year;
truripItem.Players = machine.Players;
truripItem.Source = machine.SourceFile;
truripItem.CloneOf = machine.CloneOf;
machine[Data.Models.Metadata.Machine.TruripKey] = truripItem;
}
}
@@ -513,11 +513,11 @@ namespace SabreTools.Metadata.DatFiles
if (trurip is not null)
{
var truripItem = trurip.ConvertToLogiqx();
truripItem.Publisher = machine.ReadString(Data.Models.Metadata.Machine.PublisherKey);
truripItem.Year = machine.ReadString(Data.Models.Metadata.Machine.YearKey);
truripItem.Players = machine.ReadString(Data.Models.Metadata.Machine.PlayersKey);
truripItem.Source = machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey);
truripItem.CloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
truripItem.Publisher = machine.Publisher;
truripItem.Year = machine.Year;
truripItem.Players = machine.Players;
truripItem.Source = machine.SourceFile;
truripItem.CloneOf = machine.CloneOf;
machine[Data.Models.Metadata.Machine.TruripKey] = truripItem;
}
}

View File

@@ -584,8 +584,8 @@ namespace SabreTools.Metadata.DatFiles
Data.Models.Metadata.ItemType type = item.ItemType;
string
game = machine?.Name ?? string.Empty,
manufacturer = machine?.ReadString(Data.Models.Metadata.Machine.ManufacturerKey) ?? string.Empty,
publisher = machine?.ReadString(Data.Models.Metadata.Machine.PublisherKey) ?? string.Empty,
manufacturer = machine?.Manufacturer ?? string.Empty,
publisher = machine?.Publisher ?? string.Empty,
category = machine?.ReadString(Data.Models.Metadata.Machine.CategoryKey) ?? string.Empty,
name = item.GetName() ?? type.AsStringValue() ?? string.Empty,
crc16 = string.Empty,

View File

@@ -558,8 +558,8 @@ namespace SabreTools.Metadata.DatFiles
}
// If the saved machine is a child of the current machine, use the current machine instead
if (savedMachine?.ReadString(Data.Models.Metadata.Machine.CloneOfKey) == itemMachine?.Name
|| savedMachine?.ReadString(Data.Models.Metadata.Machine.RomOfKey) == itemMachine?.Name)
if (savedMachine?.CloneOf == itemMachine?.Name
|| savedMachine?.RomOf == itemMachine?.Name)
{
savedItem.CopyMachineInformation(datItem);
savedItem.SetName(datItem.GetName());

View File

@@ -940,8 +940,8 @@ namespace SabreTools.Metadata.DatFiles
}
// If the saved machine is a child of the current machine, use the current machine instead
if (savedMachine.ReadString(Data.Models.Metadata.Machine.CloneOfKey) == itemMachine.Name
|| savedMachine.ReadString(Data.Models.Metadata.Machine.RomOfKey) == itemMachine.Name)
if (savedMachine.CloneOf == itemMachine.Name
|| savedMachine.RomOf == itemMachine.Name)
{
_machines[_itemToMachineMapping[savedIndex]] = (itemMachine.Clone() as Machine)!;
savedItem.SetName(datItem.GetName());

View File

@@ -53,13 +53,12 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CopyMachineInformation_NewItem_Overwrite()
{
Machine? machineA = new Machine();
machineA.Name = "machineA";
var romA = new Rom();
var romB = new Rom();
romB.Machine = null;
var romB = new Rom
{
Machine = null
};
romA.CopyMachineInformation(romB);
var actualMachineA = romA.Machine;
@@ -70,14 +69,20 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CopyMachineInformation_EmptyItem_NoChange()
{
Machine? machineA = new Machine();
machineA.Name = "machineA";
Machine? machineA = new Machine
{
Name = "machineA"
};
var romA = new Rom();
romA.Machine = machineA;
var romA = new Rom
{
Machine = machineA
};
var romB = new Rom();
romB.Machine = null;
var romB = new Rom
{
Machine = null
};
romA.CopyMachineInformation(romB);
var actualMachineA = romA.Machine;
@@ -88,16 +93,22 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CopyMachineInformation_NullMachine_NoChange()
{
Machine? machineA = new Machine();
machineA.Name = "machineA";
Machine? machineA = new Machine
{
Name = "machineA"
};
Machine? machineB = null;
var romA = new Rom();
romA.Machine = machineA;
var romA = new Rom
{
Machine = machineA
};
var romB = new Rom();
romB.Machine = machineB;
var romB = new Rom
{
Machine = machineB
};
romA.CopyMachineInformation(romB);
var actualMachineA = romA.Machine;
@@ -108,16 +119,22 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CopyMachineInformation_EmptyMachine_Overwrite()
{
Machine? machineA = new Machine();
machineA.Name = "machineA";
Machine? machineA = new Machine
{
Name = "machineA"
};
Machine? machineB = new Machine();
var romA = new Rom();
romA.Machine = machineA;
var romA = new Rom
{
Machine = machineA
};
var romB = new Rom();
romB.Machine = machineB;
var romB = new Rom
{
Machine = machineB
};
romA.CopyMachineInformation(romB);
var actualMachineA = romA.Machine;
@@ -128,17 +145,25 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CopyMachineInformation_FilledMachine_Overwrite()
{
Machine? machineA = new Machine();
machineA.Name = "machineA";
Machine? machineA = new Machine
{
Name = "machineA"
};
Machine? machineB = new Machine();
machineB.Name = "machineB";
Machine? machineB = new Machine
{
Name = "machineB"
};
var romA = new Rom();
romA.Machine = machineA;
var romA = new Rom
{
Machine = machineA
};
var romB = new Rom();
romB.Machine = machineB;
var romB = new Rom
{
Machine = machineB
};
romA.CopyMachineInformation(romB);
var actualMachineA = romA.Machine;
@@ -149,17 +174,25 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CopyMachineInformation_MismatchedType_Overwrite()
{
Machine? machineA = new Machine();
machineA.Name = "machineA";
Machine? machineA = new Machine
{
Name = "machineA"
};
Machine? machineB = new Machine();
machineB.Name = "machineB";
Machine? machineB = new Machine
{
Name = "machineB"
};
var romA = new Rom();
romA.Machine = machineA;
var romA = new Rom
{
Machine = machineA
};
var diskB = new Disk();
diskB.Machine = machineB;
var diskB = new Disk
{
Machine = machineB
};
romA.CopyMachineInformation(diskB);
var actualMachineA = romA.Machine;
@@ -355,8 +388,10 @@ namespace SabreTools.Metadata.DatItems.Test
{
Source source = new Source(0);
Machine machine = new Machine();
machine.Name = "Machine";
Machine machine = new Machine
{
Name = "Machine"
};
DatItem datItem = new Blank();
@@ -429,8 +464,10 @@ namespace SabreTools.Metadata.DatItems.Test
{
Source source = new Source(0);
Machine machine = new Machine();
machine.Name = "Machine";
Machine machine = new Machine
{
Name = "Machine"
};
DatItem datItem = new Rom();
datItem.Write(Data.Models.Metadata.Rom.CRC16Key, "DEADBEEF");
@@ -536,8 +573,10 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CloneTest()
{
DatItem item = new Sample();
item.SetName("name");
DatItem item = new Sample
{
Name = "name"
};
object clone = item.Clone();
Sample? actual = clone as Sample;

View File

@@ -10,19 +10,27 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void ConvertToRomTest()
{
DiskArea diskArea = new DiskArea();
diskArea.Name = "name";
DiskArea diskArea = new DiskArea
{
Name = "name"
};
Machine machine = new Machine();
machine.Name = "name";
Machine machine = new Machine
{
Name = "name"
};
Part part = new Part();
part.Name = "name";
Part part = new Part
{
Name = "name"
};
Source source = new Source(0, "XXXXXX");
Disk disk = new Disk();
disk.Name = "name";
Disk disk = new Disk
{
Name = "name"
};
disk.Write(Disk.DiskAreaKey, diskArea);
disk.Write(Data.Models.Metadata.Disk.MergeKey, "XXXXXX");
disk.Write(Data.Models.Metadata.Disk.RegionKey, "XXXXXX");
@@ -253,8 +261,10 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
{
Source source = new Source(0);
Machine machine = new Machine();
machine.Name = "Machine";
Machine machine = new Machine
{
Name = "Machine"
};
DatItem datItem = new Disk();
datItem.Write(Data.Models.Metadata.Disk.MD5Key, "DEADBEEF");

View File

@@ -10,8 +10,10 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void ConvertToRomTest()
{
Machine machine = new Machine();
machine.Name = "name";
Machine machine = new Machine
{
Name = "name"
};
Source source = new Source(0, "XXXXXX");
@@ -24,12 +26,12 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
MD5 = "DEADBEEF",
SHA1 = "DEADBEEF",
SHA256 = "DEADBEEF",
Format = "XXXXXX"
Format = "XXXXXX",
DupeType = DupeType.All | DupeType.External,
Machine = machine,
RemoveFlag = false,
Source = source
};
file.DupeType = DupeType.All | DupeType.External;
file.Machine = machine;
file.RemoveFlag = false;
file.Source = source;
file.Machine = machine;
file.Source = source;
@@ -340,8 +342,10 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
{
Source source = new Source(0);
Machine machine = new Machine();
machine.Name = "Machine";
Machine machine = new Machine
{
Name = "Machine"
};
DatItem datItem = new File
{

View File

@@ -10,21 +10,25 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void ConvertToRomTest()
{
Machine machine = new Machine();
machine.Name = "name";
Machine machine = new Machine
{
Name = "name"
};
Source source = new Source(0, "XXXXXX");
Media media = new Media();
media.Name = "name";
media.MD5 = HashType.MD5.ZeroString;
media.SHA1 = HashType.SHA1.ZeroString;
media.SHA256 = HashType.SHA256.ZeroString;
media.SpamSum = HashType.SpamSum.ZeroString;
media.DupeType = DupeType.All | DupeType.External;
media.Machine = machine;
media.RemoveFlag = false;
media.Source = source;
Media media = new Media
{
Name = "name",
MD5 = HashType.MD5.ZeroString,
SHA1 = HashType.SHA1.ZeroString,
SHA256 = HashType.SHA256.ZeroString,
SpamSum = HashType.SpamSum.ZeroString,
DupeType = DupeType.All | DupeType.External,
Machine = machine,
RemoveFlag = false,
Source = source
};
Rom actual = media.ConvertToRom();
@@ -70,11 +74,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
{
Media self = new Media();
Media other = new Media();
other.MD5 = "XXXXXX";
other.SHA1 = "XXXXXX";
other.SHA256 = "XXXXXX";
other.SpamSum = "XXXXXX";
Media other = new Media
{
MD5 = "XXXXXX",
SHA1 = "XXXXXX",
SHA256 = "XXXXXX",
SpamSum = "XXXXXX"
};
self.FillMissingInformation(other);
@@ -99,11 +105,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_MD5_True()
{
Media self = new Media();
self.MD5 = "XXXXXX";
self.SHA1 = string.Empty;
self.SHA256 = string.Empty;
self.SpamSum = string.Empty;
Media self = new Media
{
MD5 = "XXXXXX",
SHA1 = string.Empty,
SHA256 = string.Empty,
SpamSum = string.Empty
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -112,11 +120,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_SHA1_True()
{
Media self = new Media();
self.MD5 = string.Empty;
self.SHA1 = "XXXXXX";
self.SHA256 = string.Empty;
self.SpamSum = string.Empty;
Media self = new Media
{
MD5 = string.Empty,
SHA1 = "XXXXXX",
SHA256 = string.Empty,
SpamSum = string.Empty
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -125,11 +135,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_SHA256_True()
{
Media self = new Media();
self.MD5 = string.Empty;
self.SHA1 = string.Empty;
self.SHA256 = "XXXXXX";
self.SpamSum = string.Empty;
Media self = new Media
{
MD5 = string.Empty,
SHA1 = string.Empty,
SHA256 = "XXXXXX",
SpamSum = string.Empty
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -138,11 +150,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_SpamSum_True()
{
Media self = new Media();
self.MD5 = string.Empty;
self.SHA1 = string.Empty;
self.SHA256 = string.Empty;
self.SpamSum = "XXXXXX";
Media self = new Media
{
MD5 = string.Empty,
SHA1 = string.Empty,
SHA256 = string.Empty,
SpamSum = "XXXXXX"
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -151,11 +165,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_All_True()
{
Media self = new Media();
self.MD5 = "XXXXXX";
self.SHA1 = "XXXXXX";
self.SHA256 = "XXXXXX";
self.SpamSum = "XXXXXX";
Media self = new Media
{
MD5 = "XXXXXX",
SHA1 = "XXXXXX",
SHA256 = "XXXXXX",
SpamSum = "XXXXXX"
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -176,11 +192,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_NonZeroHash_False()
{
Media self = new Media();
self.MD5 = "XXXXXX";
self.SHA1 = "XXXXXX";
self.SHA256 = "XXXXXX";
self.SpamSum = "XXXXXX";
Media self = new Media
{
MD5 = "XXXXXX",
SHA1 = "XXXXXX",
SHA256 = "XXXXXX",
SpamSum = "XXXXXX"
};
bool actual = self.HasZeroHash();
Assert.False(actual);
@@ -189,11 +207,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroMD5_True()
{
Media self = new Media();
self.MD5 = HashType.MD5.ZeroString;
self.SHA1 = string.Empty;
self.SHA256 = string.Empty;
self.SpamSum = string.Empty;
Media self = new Media
{
MD5 = HashType.MD5.ZeroString,
SHA1 = string.Empty,
SHA256 = string.Empty,
SpamSum = string.Empty
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -202,11 +222,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroSHA1_True()
{
Media self = new Media();
self.MD5 = string.Empty;
self.SHA1 = HashType.SHA1.ZeroString;
self.SHA256 = string.Empty;
self.SpamSum = string.Empty;
Media self = new Media
{
MD5 = string.Empty,
SHA1 = HashType.SHA1.ZeroString,
SHA256 = string.Empty,
SpamSum = string.Empty
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -215,11 +237,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroSHA256_True()
{
Media self = new Media();
self.MD5 = string.Empty;
self.SHA1 = string.Empty;
self.SHA256 = HashType.SHA256.ZeroString;
self.SpamSum = string.Empty;
Media self = new Media
{
MD5 = string.Empty,
SHA1 = string.Empty,
SHA256 = HashType.SHA256.ZeroString,
SpamSum = string.Empty
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -228,11 +252,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroSpamSum_True()
{
Media self = new Media();
self.MD5 = string.Empty;
self.SHA1 = string.Empty;
self.SHA256 = string.Empty;
self.SpamSum = HashType.SpamSum.ZeroString;
Media self = new Media
{
MD5 = string.Empty,
SHA1 = string.Empty,
SHA256 = string.Empty,
SpamSum = HashType.SpamSum.ZeroString
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -241,11 +267,13 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroAll_True()
{
Media self = new Media();
self.MD5 = HashType.MD5.ZeroString;
self.SHA1 = HashType.SHA1.ZeroString;
self.SHA256 = HashType.SHA256.ZeroString;
self.SpamSum = HashType.SpamSum.ZeroString;
Media self = new Media
{
MD5 = HashType.MD5.ZeroString,
SHA1 = HashType.SHA1.ZeroString,
SHA256 = HashType.SHA256.ZeroString,
SpamSum = HashType.SpamSum.ZeroString
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -305,8 +333,10 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
{
Source source = new Source(0);
Machine machine = new Machine();
machine.Name = "Machine";
Machine machine = new Machine
{
Name = "Machine"
};
DatItem datItem = new Media
{

View File

@@ -799,8 +799,10 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
{
Source source = new Source(0);
Machine machine = new Machine();
machine.SetName("Machine");
Machine machine = new Machine
{
Name = "Machine"
};
DatItem datItem = new Rom();
datItem.Write(Data.Models.Metadata.Rom.CRC16Key, "DEADBEEF");

View File

@@ -9,8 +9,10 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void CloneTest()
{
Machine item = new Machine();
item.Name = "name";
Machine item = new Machine
{
Name = "name"
};
object clone = item.Clone();
Machine? actual = clone as Machine;
@@ -25,8 +27,10 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void GetInternalCloneTest()
{
Machine item = new Machine();
item.Name = "name";
Machine item = new Machine
{
Name = "name"
};
Data.Models.Metadata.Machine actual = item.GetInternalClone();
Assert.Equal("name", actual.Name);
@@ -59,11 +63,15 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void Equals_MismatchedInternal_False()
{
Machine self = new Machine();
self.Name = "self";
Machine self = new Machine
{
Name = "self"
};
Machine? other = new Machine();
other.Name = "other";
Machine? other = new Machine
{
Name = "other"
};
bool actual = self.Equals(other);
Assert.False(actual);
@@ -72,11 +80,15 @@ namespace SabreTools.Metadata.DatItems.Test
[Fact]
public void Equals_EqualInternal_True()
{
Machine self = new Machine();
self.Name = "name";
Machine self = new Machine
{
Name = "name"
};
Machine? other = new Machine();
other.Name = "name";
Machine? other = new Machine
{
Name = "name"
};
bool actual = self.Equals(other);
Assert.True(actual);

View File

@@ -136,7 +136,7 @@ namespace SabreTools.Metadata.DatItems.Formats
{
var rom = new Rom();
rom.SetName($"{Id}.{Extension}");
rom.Name = $"{Id}.{Extension}";
rom.Size = Size;
rom.Write<string?>(Data.Models.Metadata.Rom.CRCKey, CRC);
rom.Write<string?>(Data.Models.Metadata.Rom.MD5Key, MD5);

View File

@@ -15,12 +15,138 @@ namespace SabreTools.Metadata.DatItems
{
#region Fields
public string? Board
{
get => _internal.Board;
set => _internal.Board = value;
}
public string? Buttons
{
get => _internal.Buttons;
set => _internal.Buttons = value;
}
public string? CloneOf
{
get => _internal.CloneOf;
set => _internal.CloneOf = value;
}
public string? CloneOfId
{
get => _internal.CloneOfId;
set => _internal.CloneOfId = value;
}
public string? Company
{
get => _internal.Company;
set => _internal.Company = value;
}
public string? Control
{
get => _internal.Control;
set => _internal.Control = value;
}
public string? Country
{
get => _internal.Country;
set => _internal.Country = value;
}
public string? Description
{
get => _internal.Description;
set => _internal.Description = value;
}
public string? DirName
{
get => _internal.DirName;
set => _internal.DirName = value;
}
public string? DisplayCount
{
get => _internal.DisplayCount;
set => _internal.DisplayCount = value;
}
public string? DisplayType
{
get => _internal.DisplayType;
set => _internal.DisplayType = value;
}
public string? DuplicateID
{
get => _internal.DuplicateID;
set => _internal.DuplicateID = value;
}
public string? Emulator
{
get => _internal.Emulator;
set => _internal.Emulator = value;
}
public string? Extra
{
get => _internal.Extra;
set => _internal.Extra = value;
}
public string? Favorite
{
get => _internal.Favorite;
set => _internal.Favorite = value;
}
public string? GenMSXID
{
get => _internal.GenMSXID;
set => _internal.GenMSXID = value;
}
public string? Hash
{
get => _internal.Hash;
set => _internal.Hash = value;
}
public string? History
{
get => _internal.History;
set => _internal.History = value;
}
public string? Id
{
get => _internal.Id;
set => _internal.Id = value;
}
public string? Im1CRC
{
get => _internal.Im1CRC;
set => _internal.Im1CRC = value;
}
public string? Im2CRC
{
get => _internal.Im2CRC;
set => _internal.Im2CRC = value;
}
public string? ImageNumber
{
get => _internal.ImageNumber;
set => _internal.ImageNumber = value;
}
public bool? IsBios
{
get => _internal.IsBios;
@@ -39,24 +165,150 @@ namespace SabreTools.Metadata.DatItems
set => _internal.IsMechanical = value;
}
public string? Language
{
get => _internal.Language;
set => _internal.Language = value;
}
public string? Location
{
get => _internal.Location;
set => _internal.Location = value;
}
public string? Manufacturer
{
get => _internal.Manufacturer;
set => _internal.Manufacturer = value;
}
public string? Name
{
get => _internal.Name;
set => _internal.Name = value;
}
public string? Notes
{
get => _internal.Notes;
set => _internal.Notes = value;
}
public string? PlayedCount
{
get => _internal.PlayedCount;
set => _internal.PlayedCount = value;
}
public string? PlayedTime
{
get => _internal.PlayedTime;
set => _internal.PlayedTime = value;
}
public string? Players
{
get => _internal.Players;
set => _internal.Players = value;
}
public string? Publisher
{
get => _internal.Publisher;
set => _internal.Publisher = value;
}
public string? RebuildTo
{
get => _internal.RebuildTo;
set => _internal.RebuildTo = value;
}
public string? ReleaseNumber
{
get => _internal.ReleaseNumber;
set => _internal.ReleaseNumber = value;
}
public string? RomOf
{
get => _internal.RomOf;
set => _internal.RomOf = value;
}
public string? Rotation
{
get => _internal.Rotation;
set => _internal.Rotation = value;
}
public Data.Models.Metadata.Runnable? Runnable
{
get => _internal.Runnable;
set => _internal.Runnable = value;
}
public string? SampleOf
{
get => _internal.SampleOf;
set => _internal.SampleOf = value;
}
public string? SaveType
{
get => _internal.SaveType;
set => _internal.SaveType = value;
}
public string? SourceFile
{
get => _internal.SourceFile;
set => _internal.SourceFile = value;
}
public string? SourceRom
{
get => _internal.SourceRom;
set => _internal.SourceRom = value;
}
public string? Status
{
get => _internal.Status;
set => _internal.Status = value;
}
public Data.Models.Metadata.Supported? Supported
{
get => _internal.Supported;
set => _internal.Supported = value;
}
public string? System
{
get => _internal.System;
set => _internal.System = value;
}
public string? Tags
{
get => _internal.Tags;
set => _internal.Tags = value;
}
public string? Url
{
get => _internal.Url;
set => _internal.Url = value;
}
public string? Year
{
get => _internal.Year;
set => _internal.Year = value;
}
#endregion
#region Constructors
@@ -101,13 +353,11 @@ namespace SabreTools.Metadata.DatItems
Remove(Data.Models.Metadata.Machine.VideoKey);
// Process flag values
string? im1Crc = ReadString(Data.Models.Metadata.Machine.Im1CRCKey);
if (im1Crc is not null)
Write<string?>(Data.Models.Metadata.Machine.Im1CRCKey, TextHelper.NormalizeCRC32(im1Crc));
if (Im1CRC is not null)
Im1CRC = TextHelper.NormalizeCRC32(Im1CRC);
string? im2Crc = ReadString(Data.Models.Metadata.Machine.Im2CRCKey);
if (im2Crc is not null)
Write<string?>(Data.Models.Metadata.Machine.Im2CRCKey, TextHelper.NormalizeCRC32(im2Crc));
if (Im2CRC is not null)
Im2CRC = TextHelper.NormalizeCRC32(Im2CRC);
// Handle Trurip object, if it exists
var truripItem = machine.Read<Data.Models.Logiqx.Trurip>(Data.Models.Metadata.Machine.TruripKey);
@@ -202,7 +452,7 @@ namespace SabreTools.Metadata.DatItems
if (IsBios != other.IsBios)
return false;
if (IsDevice != other.IsDevice)
if (IsDevice != other.IsDevice)
return false;
if (IsMechanical != other.IsMechanical)

View File

@@ -733,9 +733,72 @@ namespace SabreTools.Metadata.Filter
checkValue = item.Tilt.FromYesNo();
return true;
case Machine item when fieldName == "board":
checkValue = item.Board;
return true;
case Machine item when fieldName == "buttons":
checkValue = item.Buttons;
return true;
case Machine item when fieldName == "cloneof":
checkValue = item.CloneOf;
return true;
case Machine item when fieldName == "cloneofid":
checkValue = item.CloneOfId;
return true;
case Machine item when fieldName == "company":
checkValue = item.Company;
return true;
case Machine item when fieldName == "control":
checkValue = item.Control;
return true;
case Machine item when fieldName == "country":
checkValue = item.Country;
return true;
case Machine item when fieldName == "description":
checkValue = item.Description;
return true;
case Machine item when fieldName == "dirname":
checkValue = item.DirName;
return true;
case Machine item when fieldName == "displaycount":
checkValue = item.DisplayCount;
return true;
case Machine item when fieldName == "displaytype":
checkValue = item.DisplayType;
return true;
case Machine item when fieldName == "duplicateid":
checkValue = item.DuplicateID;
return true;
case Machine item when fieldName == "emulator":
checkValue = item.Emulator;
return true;
case Machine item when fieldName == "extra":
checkValue = item.Extra;
return true;
case Machine item when fieldName == "favorite":
checkValue = item.Favorite;
return true;
case Machine item when fieldName == "genmsxid":
checkValue = item.GenMSXID;
return true;
case Machine item when fieldName == "hash":
checkValue = item.Hash;
return true;
case Machine item when fieldName == "history":
checkValue = item.History;
return true;
case Machine item when fieldName == "id":
checkValue = item.Id;
return true;
case Machine item when fieldName == "im1crc":
checkValue = item.Im1CRC;
return true;
case Machine item when fieldName == "im2crc":
checkValue = item.Im2CRC;
return true;
case Machine item when fieldName == "imagenumber":
checkValue = item.ImageNumber;
return true;
case Machine item when fieldName == "isbios":
checkValue = item.IsBios.FromYesNo();
return true;
@@ -745,12 +808,75 @@ namespace SabreTools.Metadata.Filter
case Machine item when fieldName == "ismechanical":
checkValue = item.IsMechanical.FromYesNo();
return true;
case Machine item when fieldName == "language":
checkValue = item.Language;
return true;
case Machine item when fieldName == "location":
checkValue = item.Location;
return true;
case Machine item when fieldName == "manufacturer":
checkValue = item.Manufacturer;
return true;
case Machine item when fieldName == "notes":
checkValue = item.Notes;
return true;
case Machine item when fieldName == "playedcount":
checkValue = item.PlayedCount;
return true;
case Machine item when fieldName == "playedtime":
checkValue = item.PlayedTime;
return true;
case Machine item when fieldName == "players":
checkValue = item.Players;
return true;
case Machine item when fieldName == "publisher":
checkValue = item.Publisher;
return true;
case Machine item when fieldName == "rebuildto":
checkValue = item.RebuildTo;
return true;
case Machine item when fieldName == "releasenumber":
checkValue = item.ReleaseNumber;
return true;
case Machine item when fieldName == "romof":
checkValue = item.RomOf;
return true;
case Machine item when fieldName == "rotation":
checkValue = item.Rotation;
return true;
case Machine item when fieldName == "runnable":
checkValue = item.Runnable?.AsStringValue();
return true;
case Machine item when fieldName == "sampleof":
checkValue = item.SampleOf;
return true;
case Machine item when fieldName == "savetype":
checkValue = item.SaveType;
return true;
case Machine item when fieldName == "sourcefile":
checkValue = item.SourceFile;
return true;
case Machine item when fieldName == "sourcerom":
checkValue = item.SourceRom;
return true;
case Machine item when fieldName == "status":
checkValue = item.Status;
return true;
case Machine item when fieldName == "supported":
checkValue = item.Supported?.AsStringValue();
return true;
case Machine item when fieldName == "system":
checkValue = item.System;
return true;
case Machine item when fieldName == "tags":
checkValue = item.Tags;
return true;
case Machine item when fieldName == "url":
checkValue = item.Url;
return true;
case Machine item when fieldName == "year":
checkValue = item.Year;
return true;
case Media item when fieldName == "md5":
checkValue = item.MD5;

View File

@@ -274,18 +274,102 @@ namespace SabreTools.Metadata
}
else if (self is Machine selfMachine && other is Machine otherMachine)
{
if (selfMachine.Board != otherMachine.Board)
return false;
if (selfMachine.Buttons != otherMachine.Buttons)
return false;
if (selfMachine.CloneOf != otherMachine.CloneOf)
return false;
if (selfMachine.CloneOfId != otherMachine.CloneOfId)
return false;
if (selfMachine.Company != otherMachine.Company)
return false;
if (selfMachine.Control != otherMachine.Control)
return false;
if (selfMachine.Country != otherMachine.Country)
return false;
if (selfMachine.Description != otherMachine.Description)
return false;
if (selfMachine.DirName != otherMachine.DirName)
return false;
if (selfMachine.DisplayCount != otherMachine.DisplayCount)
return false;
if (selfMachine.DisplayType != otherMachine.DisplayType)
return false;
if (selfMachine.DuplicateID != otherMachine.DuplicateID)
return false;
if (selfMachine.Emulator != otherMachine.Emulator)
return false;
if (selfMachine.Extra != otherMachine.Extra)
return false;
if (selfMachine.Favorite != otherMachine.Favorite)
return false;
if (selfMachine.GenMSXID != otherMachine.GenMSXID)
return false;
if (selfMachine.Hash != otherMachine.Hash)
return false;
if (selfMachine.History != otherMachine.History)
return false;
if (selfMachine.Id != otherMachine.Id)
return false;
if (selfMachine.Im1CRC != otherMachine.Im1CRC)
return false;
if (selfMachine.Im2CRC != otherMachine.Im2CRC)
return false;
if (selfMachine.ImageNumber != otherMachine.ImageNumber)
return false;
if (selfMachine.IsBios != otherMachine.IsBios)
return false;
if (selfMachine.IsDevice != otherMachine.IsDevice)
return false;
if (selfMachine.IsMechanical != otherMachine.IsMechanical)
return false;
if (selfMachine.Language != otherMachine.Language)
return false;
if (selfMachine.Location != otherMachine.Location)
return false;
if (selfMachine.Manufacturer != otherMachine.Manufacturer)
return false;
if (selfMachine.Notes != otherMachine.Notes)
return false;
if (selfMachine.PlayedCount != otherMachine.PlayedCount)
return false;
if (selfMachine.PlayedTime != otherMachine.PlayedTime)
return false;
if (selfMachine.Players != otherMachine.Players)
return false;
if (selfMachine.Publisher != otherMachine.Publisher)
return false;
if (selfMachine.RebuildTo != otherMachine.RebuildTo)
return false;
if (selfMachine.ReleaseNumber != otherMachine.ReleaseNumber)
return false;
if (selfMachine.RomOf != otherMachine.RomOf)
return false;
if (selfMachine.Rotation != otherMachine.Rotation)
return false;
if (selfMachine.Runnable != otherMachine.Runnable)
return false;
if (selfMachine.SampleOf != otherMachine.SampleOf)
return false;
if (selfMachine.SaveType != otherMachine.SaveType)
return false;
if (selfMachine.SourceFile != otherMachine.SourceFile)
return false;
if (selfMachine.SourceRom != otherMachine.SourceRom)
return false;
if (selfMachine.Status != otherMachine.Status)
return false;
if (selfMachine.Supported != otherMachine.Supported)
return false;
if (selfMachine.System != otherMachine.System)
return false;
if (selfMachine.Tags != otherMachine.Tags)
return false;
if (selfMachine.Url != otherMachine.Url)
return false;
if (selfMachine.Year != otherMachine.Year)
return false;
}
else if (self is Media selfMedia && other is Media otherMedia)
{

View File

@@ -59,25 +59,25 @@ namespace SabreTools.Serialization.CrossModel
{
Name = parent.Name,
Title = item.Name,
Emulator = parent.ReadString(Data.Models.Metadata.Machine.EmulatorKey),
CloneOf = parent.ReadString(Data.Models.Metadata.Machine.CloneOfKey),
Year = parent.ReadString(Data.Models.Metadata.Machine.YearKey),
Manufacturer = parent.ReadString(Data.Models.Metadata.Machine.ManufacturerKey),
Emulator = parent.Emulator,
CloneOf = parent.CloneOf,
Year = parent.Year,
Manufacturer = parent.Manufacturer,
Category = parent.ReadString(Data.Models.Metadata.Machine.CategoryKey),
Players = parent.ReadString(Data.Models.Metadata.Machine.PlayersKey),
Rotation = parent.ReadString(Data.Models.Metadata.Machine.RotationKey),
Control = parent.ReadString(Data.Models.Metadata.Machine.ControlKey),
Status = parent.ReadString(Data.Models.Metadata.Machine.StatusKey),
DisplayCount = parent.ReadString(Data.Models.Metadata.Machine.DisplayCountKey),
DisplayType = parent.ReadString(Data.Models.Metadata.Machine.DisplayTypeKey),
Players = parent.Players,
Rotation = parent.Rotation,
Control = parent.Control,
Status = parent.Status,
DisplayCount = parent.DisplayCount,
DisplayType = parent.DisplayType,
AltRomname = item.ReadString(Data.Models.Metadata.Rom.AltRomnameKey),
AltTitle = item.ReadString(Data.Models.Metadata.Rom.AltTitleKey),
Extra = parent.ReadString(Data.Models.Metadata.Machine.ExtraKey),
Buttons = parent.ReadString(Data.Models.Metadata.Machine.ButtonsKey),
Favorite = parent.ReadString(Data.Models.Metadata.Machine.FavoriteKey),
Tags = parent.ReadString(Data.Models.Metadata.Machine.TagsKey),
PlayedCount = parent.ReadString(Data.Models.Metadata.Machine.PlayedCountKey),
PlayedTime = parent.ReadString(Data.Models.Metadata.Machine.PlayedTimeKey),
Extra = parent.Extra,
Buttons = parent.Buttons,
Favorite = parent.Favorite,
Tags = parent.Tags,
PlayedCount = parent.PlayedCount,
PlayedTime = parent.PlayedTime,
FileIsAvailable = item.FileIsAvailable,
};
return row;

View File

@@ -48,23 +48,23 @@ namespace SabreTools.Serialization.CrossModel
var machine = new Data.Models.Metadata.Machine
{
Name = item.Name,
[Data.Models.Metadata.Machine.EmulatorKey] = item.Emulator,
[Data.Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Data.Models.Metadata.Machine.YearKey] = item.Year,
[Data.Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer,
Emulator = item.Emulator,
CloneOf = item.CloneOf,
Year = item.Year,
Manufacturer = item.Manufacturer,
[Data.Models.Metadata.Machine.CategoryKey] = item.Category,
[Data.Models.Metadata.Machine.PlayersKey] = item.Players,
[Data.Models.Metadata.Machine.RotationKey] = item.Rotation,
[Data.Models.Metadata.Machine.ControlKey] = item.Control,
[Data.Models.Metadata.Machine.StatusKey] = item.Status,
[Data.Models.Metadata.Machine.DisplayCountKey] = item.DisplayCount,
[Data.Models.Metadata.Machine.DisplayTypeKey] = item.DisplayType,
[Data.Models.Metadata.Machine.ExtraKey] = item.Extra,
[Data.Models.Metadata.Machine.ButtonsKey] = item.Buttons,
[Data.Models.Metadata.Machine.FavoriteKey] = item.Favorite,
[Data.Models.Metadata.Machine.TagsKey] = item.Tags,
[Data.Models.Metadata.Machine.PlayedCountKey] = item.PlayedCount,
[Data.Models.Metadata.Machine.PlayedTimeKey] = item.PlayedTime,
Players = item.Players,
Rotation = item.Rotation,
Control = item.Control,
Status = item.Status,
DisplayCount = item.DisplayCount,
DisplayType = item.DisplayType,
Extra = item.Extra,
Buttons = item.Buttons,
Favorite = item.Favorite,
Tags = item.Tags,
PlayedCount = item.PlayedCount,
PlayedTime = item.PlayedTime,
[Data.Models.Metadata.Machine.RomKey] = new Data.Models.Metadata.Rom[] { ConvertToInternalModel(item) },
};
return machine;

View File

@@ -72,12 +72,12 @@ namespace SabreTools.Serialization.CrossModel
gameBase.Name = item.Name;
gameBase.Description = item.Description;
// gameBase.DriverStatus = item.ReadString(Data.Models.Metadata.Machine.DriverKey); // TODO: Needs metadata mapping
gameBase.Year = item.ReadString(Data.Models.Metadata.Machine.YearKey);
gameBase.Manufacturer = item.ReadString(Data.Models.Metadata.Machine.ManufacturerKey);
gameBase.Year = item.Year;
gameBase.Manufacturer = item.Manufacturer;
gameBase.Category = item.ReadString(Data.Models.Metadata.Machine.CategoryKey);
gameBase.CloneOf = item.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
gameBase.RomOf = item.ReadString(Data.Models.Metadata.Machine.RomOfKey);
gameBase.SampleOf = item.ReadString(Data.Models.Metadata.Machine.SampleOfKey);
gameBase.CloneOf = item.CloneOf;
gameBase.RomOf = item.RomOf;
gameBase.SampleOf = item.SampleOf;
var releases = item.Read<Data.Models.Metadata.Release[]>(Data.Models.Metadata.Machine.ReleaseKey);
if (releases is not null && releases.Length > 0)

View File

@@ -67,12 +67,12 @@ namespace SabreTools.Serialization.CrossModel
Name = item.Name,
Description = item.Description,
// [Data.Models.Metadata.Machine.DriverKey] = item.DriverStatus, // TODO: Needs metadata mapping
[Data.Models.Metadata.Machine.YearKey] = item.Year,
[Data.Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer,
Year = item.Year,
Manufacturer = item.Manufacturer,
[Data.Models.Metadata.Machine.CategoryKey] = item.Category,
[Data.Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Data.Models.Metadata.Machine.RomOfKey] = item.RomOf,
[Data.Models.Metadata.Machine.SampleOfKey] = item.SampleOf,
CloneOf = item.CloneOf,
RomOf = item.RomOf,
SampleOf = item.SampleOf,
};
if (item.Release is not null && item.Release.Length > 0)

View File

@@ -44,18 +44,18 @@ namespace SabreTools.Serialization.CrossModel
var machine = new Machine
{
Name = item.Name,
SourceFile = item.ReadString(Data.Models.Metadata.Machine.SourceFileKey),
SourceFile = item.SourceFile,
IsBios = item.IsBios,
IsDevice = item.IsDevice,
IsMechanical = item.IsMechanical,
Runnable = item.Runnable,
CloneOf = item.ReadString(Data.Models.Metadata.Machine.CloneOfKey),
RomOf = item.ReadString(Data.Models.Metadata.Machine.RomOfKey),
SampleOf = item.ReadString(Data.Models.Metadata.Machine.SampleOfKey),
CloneOf = item.CloneOf,
RomOf = item.RomOf,
SampleOf = item.SampleOf,
Description = item.Description,
Year = item.ReadString(Data.Models.Metadata.Machine.YearKey),
Manufacturer = item.ReadString(Data.Models.Metadata.Machine.ManufacturerKey),
History = item.ReadString(Data.Models.Metadata.Machine.HistoryKey),
Year = item.Year,
Manufacturer = item.Manufacturer,
History = item.History,
};
var biosSets = item.Read<Data.Models.Metadata.BiosSet[]>(Data.Models.Metadata.Machine.BiosSetKey);

View File

@@ -47,18 +47,18 @@ namespace SabreTools.Serialization.CrossModel
var machine = new Data.Models.Metadata.Machine
{
Name = item.Name,
[Data.Models.Metadata.Machine.SourceFileKey] = item.SourceFile,
SourceFile = item.SourceFile,
IsBios = item.IsBios,
IsDevice = item.IsDevice,
IsMechanical = item.IsMechanical,
Runnable = item.Runnable,
[Data.Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Data.Models.Metadata.Machine.RomOfKey] = item.RomOf,
[Data.Models.Metadata.Machine.SampleOfKey] = item.SampleOf,
CloneOf = item.CloneOf,
RomOf = item.RomOf,
SampleOf = item.SampleOf,
Description = item.Description,
[Data.Models.Metadata.Machine.YearKey] = item.Year,
[Data.Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer,
[Data.Models.Metadata.Machine.HistoryKey] = item.History,
Year = item.Year,
Manufacturer = item.Manufacturer,
History = item.History,
};
if (item.BiosSet is not null && item.BiosSet.Length > 0)

View File

@@ -121,23 +121,23 @@ namespace SabreTools.Serialization.CrossModel
GameBase gameBase = game ? new Game() : new Machine();
gameBase.Name = item.Name;
gameBase.SourceFile = item.ReadString(Data.Models.Metadata.Machine.SourceFileKey);
gameBase.SourceFile = item.SourceFile;
gameBase.IsBios = item.IsBios;
gameBase.IsDevice = item.IsDevice;
gameBase.IsMechanical = item.IsMechanical;
gameBase.CloneOf = item.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
gameBase.RomOf = item.ReadString(Data.Models.Metadata.Machine.RomOfKey);
gameBase.SampleOf = item.ReadString(Data.Models.Metadata.Machine.SampleOfKey);
gameBase.Board = item.ReadString(Data.Models.Metadata.Machine.BoardKey);
gameBase.RebuildTo = item.ReadString(Data.Models.Metadata.Machine.RebuildToKey);
gameBase.Id = item.ReadString(Data.Models.Metadata.Machine.IdKey);
gameBase.CloneOfId = item.ReadString(Data.Models.Metadata.Machine.CloneOfIdKey);
gameBase.CloneOf = item.CloneOf;
gameBase.RomOf = item.RomOf;
gameBase.SampleOf = item.SampleOf;
gameBase.Board = item.Board;
gameBase.RebuildTo = item.RebuildTo;
gameBase.Id = item.Id;
gameBase.CloneOfId = item.CloneOfId;
gameBase.Runnable = item.Runnable;
gameBase.Comment = item.ReadStringArray(Data.Models.Metadata.Machine.CommentKey);
gameBase.Description = item.Description;
gameBase.Year = item.ReadString(Data.Models.Metadata.Machine.YearKey);
gameBase.Manufacturer = item.ReadString(Data.Models.Metadata.Machine.ManufacturerKey);
gameBase.Publisher = item.ReadString(Data.Models.Metadata.Machine.PublisherKey);
gameBase.Year = item.Year;
gameBase.Manufacturer = item.Manufacturer;
gameBase.Publisher = item.Publisher;
gameBase.Category = item.ReadStringArray(Data.Models.Metadata.Machine.CategoryKey);
var trurip = item.Read<Trurip>(Data.Models.Metadata.Machine.TruripKey);

View File

@@ -127,23 +127,23 @@ namespace SabreTools.Serialization.CrossModel
var machine = new Data.Models.Metadata.Machine
{
Name = machineName,
[Data.Models.Metadata.Machine.SourceFileKey] = item.SourceFile,
SourceFile = item.SourceFile,
IsBios = item.IsBios,
IsDevice = item.IsDevice,
IsMechanical = item.IsMechanical,
[Data.Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
[Data.Models.Metadata.Machine.RomOfKey] = item.RomOf,
[Data.Models.Metadata.Machine.SampleOfKey] = item.SampleOf,
[Data.Models.Metadata.Machine.BoardKey] = item.Board,
[Data.Models.Metadata.Machine.RebuildToKey] = item.RebuildTo,
[Data.Models.Metadata.Machine.IdKey] = item.Id,
[Data.Models.Metadata.Machine.CloneOfIdKey] = item.CloneOfId,
CloneOf = item.CloneOf,
RomOf = item.RomOf,
SampleOf = item.SampleOf,
Board = item.Board,
RebuildTo = item.RebuildTo,
Id = item.Id,
CloneOfId = item.CloneOfId,
Runnable = item.Runnable,
[Data.Models.Metadata.Machine.CommentKey] = item.Comment,
Description = item.Description,
[Data.Models.Metadata.Machine.YearKey] = item.Year,
[Data.Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer,
[Data.Models.Metadata.Machine.PublisherKey] = item.Publisher,
Year = item.Year,
Manufacturer = item.Manufacturer,
Publisher = item.Publisher,
[Data.Models.Metadata.Machine.CategoryKey] = item.Category,
[Data.Models.Metadata.Machine.TruripKey] = item.Trurip,
};

View File

@@ -82,18 +82,18 @@ namespace SabreTools.Serialization.CrossModel
{
var game = new Game
{
ImageNumber = item.ReadString(Data.Models.Metadata.Machine.ImageNumberKey),
ReleaseNumber = item.ReadString(Data.Models.Metadata.Machine.ReleaseNumberKey),
ImageNumber = item.ImageNumber,
ReleaseNumber = item.ReleaseNumber,
Title = item.Name,
SaveType = item.ReadString(Data.Models.Metadata.Machine.SaveTypeKey),
Publisher = item.ReadString(Data.Models.Metadata.Machine.PublisherKey),
Location = item.ReadString(Data.Models.Metadata.Machine.LocationKey),
SourceRom = item.ReadString(Data.Models.Metadata.Machine.SourceRomKey),
Language = item.ReadString(Data.Models.Metadata.Machine.LanguageKey),
Im1CRC = item.ReadString(Data.Models.Metadata.Machine.Im1CRCKey),
Im2CRC = item.ReadString(Data.Models.Metadata.Machine.Im2CRCKey),
SaveType = item.SaveType,
Publisher = item.Publisher,
Location = item.Location,
SourceRom = item.SourceRom,
Language = item.Language,
Im1CRC = item.Im1CRC,
Im2CRC = item.Im2CRC,
Comment = item.ReadString(Data.Models.Metadata.Machine.CommentKey),
DuplicateID = item.ReadString(Data.Models.Metadata.Machine.DuplicateIDKey),
DuplicateID = item.DuplicateID,
};
var roms = item.Read<Data.Models.Metadata.Rom[]>(Data.Models.Metadata.Machine.RomKey);

View File

@@ -65,18 +65,18 @@ namespace SabreTools.Serialization.CrossModel
{
var machine = new Data.Models.Metadata.Machine
{
[Data.Models.Metadata.Machine.ImageNumberKey] = item.ImageNumber,
[Data.Models.Metadata.Machine.ReleaseNumberKey] = item.ReleaseNumber,
ImageNumber = item.ImageNumber,
ReleaseNumber = item.ReleaseNumber,
Name = item.Title,
[Data.Models.Metadata.Machine.SaveTypeKey] = item.SaveType,
[Data.Models.Metadata.Machine.PublisherKey] = item.Publisher,
[Data.Models.Metadata.Machine.LocationKey] = item.Location,
[Data.Models.Metadata.Machine.SourceRomKey] = item.SourceRom,
[Data.Models.Metadata.Machine.LanguageKey] = item.Language,
[Data.Models.Metadata.Machine.Im1CRCKey] = item.Im1CRC,
[Data.Models.Metadata.Machine.Im2CRCKey] = item.Im2CRC,
SaveType = item.SaveType,
Publisher = item.Publisher,
Location = item.Location,
SourceRom = item.SourceRom,
Language = item.Language,
Im1CRC = item.Im1CRC,
Im2CRC = item.Im2CRC,
[Data.Models.Metadata.Machine.CommentKey] = item.Comment,
[Data.Models.Metadata.Machine.DuplicateIDKey] = item.DuplicateID,
DuplicateID = item.DuplicateID,
};
if (item.Files?.RomCRC is not null && item.Files.RomCRC.Length > 0)

View File

@@ -41,11 +41,11 @@ namespace SabreTools.Serialization.CrossModel
var game = new Software
{
Title = item.Name,
GenMSXID = item.ReadString(Data.Models.Metadata.Machine.GenMSXIDKey),
System = item.ReadString(Data.Models.Metadata.Machine.SystemKey),
Company = item.ReadString(Data.Models.Metadata.Machine.CompanyKey),
Year = item.ReadString(Data.Models.Metadata.Machine.YearKey),
Country = item.ReadString(Data.Models.Metadata.Machine.CountryKey),
GenMSXID = item.GenMSXID,
System = item.System,
Company = item.Company,
Year = item.Year,
Country = item.Country,
};
var dumps = item.Read<Data.Models.Metadata.Dump[]>(Data.Models.Metadata.Machine.DumpKey);

View File

@@ -45,11 +45,11 @@ namespace SabreTools.Serialization.CrossModel
var machine = new Data.Models.Metadata.Machine
{
Name = item.Title,
[Data.Models.Metadata.Machine.GenMSXIDKey] = item.GenMSXID,
[Data.Models.Metadata.Machine.SystemKey] = item.System,
[Data.Models.Metadata.Machine.CompanyKey] = item.Company,
[Data.Models.Metadata.Machine.YearKey] = item.Year,
[Data.Models.Metadata.Machine.CountryKey] = item.Country,
GenMSXID = item.GenMSXID,
System = item.System,
Company = item.Company,
Year = item.Year,
Country = item.Country,
};
if (item.Dump is not null && item.Dump.Length > 0)

View File

@@ -98,14 +98,14 @@ namespace SabreTools.Serialization.CrossModel
{
var row = new Rom
{
ParentName = parent.ReadString(Data.Models.Metadata.Machine.CloneOfKey),
ParentName = parent.CloneOf,
//ParentDescription = parent.ReadString(Data.Models.Metadata.Machine.ParentDescriptionKey), // This is unmappable
GameName = parent.Name,
GameDescription = parent.Description,
RomName = item.Name,
RomCRC = item.ReadString(Data.Models.Metadata.Rom.CRCKey),
RomSize = item.Size,
RomOf = parent.ReadString(Data.Models.Metadata.Machine.RomOfKey),
RomOf = parent.RomOf,
MergeName = item.ReadString(Data.Models.Metadata.Rom.MergeKey),
};
return row;

View File

@@ -70,8 +70,8 @@ namespace SabreTools.Serialization.CrossModel
{
var machine = new Data.Models.Metadata.Machine
{
[Data.Models.Metadata.Machine.RomOfKey] = item.RomOf,
[Data.Models.Metadata.Machine.CloneOfKey] = item.ParentName,
RomOf = item.RomOf,
CloneOf = item.ParentName,
//[Data.Models.Metadata.Machine.ParentDescriptionKey] = item.ParentDescription, // This is unmappable
Name = item.GameName,
Description = item.GameDescription,

View File

@@ -43,12 +43,12 @@ namespace SabreTools.Serialization.CrossModel
var software = new Software
{
Name = item.Name,
CloneOf = item.ReadString(Data.Models.Metadata.Machine.CloneOfKey),
CloneOf = item.CloneOf,
Supported = item.Supported,
Description = item.Description,
Year = item.ReadString(Data.Models.Metadata.Machine.YearKey),
Publisher = item.ReadString(Data.Models.Metadata.Machine.PublisherKey),
Notes = item.ReadString(Data.Models.Metadata.Machine.NotesKey),
Year = item.Year,
Publisher = item.Publisher,
Notes = item.Notes,
};
var infos = item.Read<Data.Models.Metadata.Info[]>(Data.Models.Metadata.Machine.InfoKey);

View File

@@ -47,12 +47,12 @@ namespace SabreTools.Serialization.CrossModel
var machine = new Data.Models.Metadata.Machine
{
Name = item.Name,
[Data.Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
CloneOf = item.CloneOf,
Supported = item.Supported,
Description = item.Description,
[Data.Models.Metadata.Machine.YearKey] = item.Year,
[Data.Models.Metadata.Machine.PublisherKey] = item.Publisher,
[Data.Models.Metadata.Machine.NotesKey] = item.Notes,
Year = item.Year,
Publisher = item.Publisher,
Notes = item.Notes,
};
if (item.Info is not null && item.Info.Length > 0)