mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-08 18:06:41 +00:00
Add Logiqx serial and version machine fields
This commit is contained in:
@@ -71,6 +71,12 @@ namespace SabreTools.Data.Models.Logiqx
|
|||||||
[XmlElement("publisher")]
|
[XmlElement("publisher")]
|
||||||
public string? Publisher { get; set; }
|
public string? Publisher { get; set; }
|
||||||
|
|
||||||
|
[XmlElement("serial")]
|
||||||
|
public string? Serial { get; set; }
|
||||||
|
|
||||||
|
[XmlElement("version")]
|
||||||
|
public string? Version { get; set; }
|
||||||
|
|
||||||
/// <remarks>No-Intro extension includes more than 1 instance</remarks>
|
/// <remarks>No-Intro extension includes more than 1 instance</remarks>
|
||||||
[XmlElement("category")]
|
[XmlElement("category")]
|
||||||
public string[]? Category { get; set; }
|
public string[]? Category { get; set; }
|
||||||
|
|||||||
@@ -157,6 +157,8 @@ namespace SabreTools.Data.Models.Metadata
|
|||||||
|
|
||||||
public string? Score { get; set; }
|
public string? Score { get; set; }
|
||||||
|
|
||||||
|
public string? Serial { get; set; }
|
||||||
|
|
||||||
public SharedFeat[]? SharedFeat { get; set; }
|
public SharedFeat[]? SharedFeat { get; set; }
|
||||||
|
|
||||||
public Slot[]? Slot { get; set; }
|
public Slot[]? Slot { get; set; }
|
||||||
@@ -186,6 +188,8 @@ namespace SabreTools.Data.Models.Metadata
|
|||||||
|
|
||||||
public string? Url { get; set; }
|
public string? Url { get; set; }
|
||||||
|
|
||||||
|
public string? Version { get; set; }
|
||||||
|
|
||||||
public Video[]? Video { get; set; }
|
public Video[]? Video { get; set; }
|
||||||
|
|
||||||
public string? Year { get; set; }
|
public string? Year { get; set; }
|
||||||
@@ -293,6 +297,7 @@ namespace SabreTools.Data.Models.Metadata
|
|||||||
obj.SampleOf = SampleOf;
|
obj.SampleOf = SampleOf;
|
||||||
obj.SaveType = SaveType;
|
obj.SaveType = SaveType;
|
||||||
obj.Score = Score;
|
obj.Score = Score;
|
||||||
|
obj.Serial = Serial;
|
||||||
if (SharedFeat is not null)
|
if (SharedFeat is not null)
|
||||||
obj.SharedFeat = Array.ConvertAll(SharedFeat, i => (SharedFeat)i.Clone());
|
obj.SharedFeat = Array.ConvertAll(SharedFeat, i => (SharedFeat)i.Clone());
|
||||||
if (Slot is not null)
|
if (Slot is not null)
|
||||||
@@ -311,6 +316,7 @@ namespace SabreTools.Data.Models.Metadata
|
|||||||
obj.Tags = Tags;
|
obj.Tags = Tags;
|
||||||
obj.TitleID = TitleID;
|
obj.TitleID = TitleID;
|
||||||
obj.Url = Url;
|
obj.Url = Url;
|
||||||
|
obj.Version = Version;
|
||||||
if (Video is not null)
|
if (Video is not null)
|
||||||
obj.Video = Array.ConvertAll(Video, i => (Video)i.Clone());
|
obj.Video = Array.ConvertAll(Video, i => (Video)i.Clone());
|
||||||
obj.Year = Year;
|
obj.Year = Year;
|
||||||
@@ -558,6 +564,11 @@ namespace SabreTools.Data.Models.Metadata
|
|||||||
else if (Score is not null && !Score.Equals(other.Score, StringComparison.OrdinalIgnoreCase))
|
else if (Score is not null && !Score.Equals(other.Score, StringComparison.OrdinalIgnoreCase))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if ((Serial is null) ^ (other.Serial is null))
|
||||||
|
return false;
|
||||||
|
else if (Serial is not null && !Serial.Equals(other.Serial, StringComparison.OrdinalIgnoreCase))
|
||||||
|
return false;
|
||||||
|
|
||||||
if ((Source is null) ^ (other.Source is null))
|
if ((Source is null) ^ (other.Source is null))
|
||||||
return false;
|
return false;
|
||||||
else if (Source is not null && !Source.Equals(other.Source, StringComparison.OrdinalIgnoreCase))
|
else if (Source is not null && !Source.Equals(other.Source, StringComparison.OrdinalIgnoreCase))
|
||||||
@@ -606,6 +617,11 @@ namespace SabreTools.Data.Models.Metadata
|
|||||||
else if (Url is not null && !Url.Equals(other.Url, StringComparison.OrdinalIgnoreCase))
|
else if (Url is not null && !Url.Equals(other.Url, StringComparison.OrdinalIgnoreCase))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if ((Version is null) ^ (other.Version is null))
|
||||||
|
return false;
|
||||||
|
else if (Version is not null && !Version.Equals(other.Version, StringComparison.OrdinalIgnoreCase))
|
||||||
|
return false;
|
||||||
|
|
||||||
if ((Year is null) ^ (other.Year is null))
|
if ((Year is null) ^ (other.Year is null))
|
||||||
return false;
|
return false;
|
||||||
else if (Year is not null && !Year.Equals(other.Year, StringComparison.OrdinalIgnoreCase))
|
else if (Year is not null && !Year.Equals(other.Year, StringComparison.OrdinalIgnoreCase))
|
||||||
|
|||||||
@@ -326,6 +326,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
|||||||
SampleOf = "sampleof",
|
SampleOf = "sampleof",
|
||||||
SaveType = "savetype",
|
SaveType = "savetype",
|
||||||
Score = "score",
|
Score = "score",
|
||||||
|
Serial = "serial",
|
||||||
SharedFeat = [CreateMetadataSharedFeat()],
|
SharedFeat = [CreateMetadataSharedFeat()],
|
||||||
Slot = [CreateMetadataSlot()],
|
Slot = [CreateMetadataSlot()],
|
||||||
SoftwareList = [CreateMetadataSoftwareList()],
|
SoftwareList = [CreateMetadataSoftwareList()],
|
||||||
@@ -340,6 +341,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
|||||||
Tags = "tags",
|
Tags = "tags",
|
||||||
TitleID = "titleid",
|
TitleID = "titleid",
|
||||||
Url = "url",
|
Url = "url",
|
||||||
|
Version = "version",
|
||||||
Video = [CreateMetadataVideo()],
|
Video = [CreateMetadataVideo()],
|
||||||
Year = "year",
|
Year = "year",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -435,6 +435,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
|||||||
Assert.Equal("sampleof", machine.SampleOf);
|
Assert.Equal("sampleof", machine.SampleOf);
|
||||||
Assert.Equal("savetype", machine.SaveType);
|
Assert.Equal("savetype", machine.SaveType);
|
||||||
Assert.Equal("score", machine.Score);
|
Assert.Equal("score", machine.Score);
|
||||||
|
Assert.Equal("serial", machine.Serial);
|
||||||
Assert.Equal("source", machine.Source);
|
Assert.Equal("source", machine.Source);
|
||||||
Assert.Equal("sourcefile", machine.SourceFile);
|
Assert.Equal("sourcefile", machine.SourceFile);
|
||||||
Assert.Equal("sourcerom", machine.SourceRom);
|
Assert.Equal("sourcerom", machine.SourceRom);
|
||||||
@@ -444,6 +445,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
|||||||
Assert.Equal("system", machine.System);
|
Assert.Equal("system", machine.System);
|
||||||
Assert.Equal("tags", machine.Tags);
|
Assert.Equal("tags", machine.Tags);
|
||||||
Assert.Equal("titleid", machine.TitleID);
|
Assert.Equal("titleid", machine.TitleID);
|
||||||
|
Assert.Equal("version", machine.Version);
|
||||||
Assert.Equal("year", machine.Year);
|
Assert.Equal("year", machine.Year);
|
||||||
|
|
||||||
Data.Models.Metadata.Adjuster[]? adjusters = machine.Adjuster;
|
Data.Models.Metadata.Adjuster[]? adjusters = machine.Adjuster;
|
||||||
|
|||||||
@@ -314,6 +314,12 @@ namespace SabreTools.Metadata.DatItems
|
|||||||
set => _internal.Score = value;
|
set => _internal.Score = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string? Serial
|
||||||
|
{
|
||||||
|
get => _internal.Serial;
|
||||||
|
set => _internal.Serial = value;
|
||||||
|
}
|
||||||
|
|
||||||
public string? Source
|
public string? Source
|
||||||
{
|
{
|
||||||
get => _internal.Source;
|
get => _internal.Source;
|
||||||
@@ -374,6 +380,12 @@ namespace SabreTools.Metadata.DatItems
|
|||||||
set => _internal.Url = value;
|
set => _internal.Url = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string? Version
|
||||||
|
{
|
||||||
|
get => _internal.Version;
|
||||||
|
set => _internal.Version = value;
|
||||||
|
}
|
||||||
|
|
||||||
public string? Year
|
public string? Year
|
||||||
{
|
{
|
||||||
get => _internal.Year;
|
get => _internal.Year;
|
||||||
|
|||||||
@@ -1359,6 +1359,7 @@ namespace SabreTools.Metadata.Filter.Test
|
|||||||
SampleOf = "sampleof",
|
SampleOf = "sampleof",
|
||||||
SaveType = "savetype",
|
SaveType = "savetype",
|
||||||
Score = "score",
|
Score = "score",
|
||||||
|
Serial = "serial",
|
||||||
Source = "source",
|
Source = "source",
|
||||||
SourceFile = "sourcefile",
|
SourceFile = "sourcefile",
|
||||||
SourceRom = "sourcerom",
|
SourceRom = "sourcerom",
|
||||||
@@ -1369,6 +1370,7 @@ namespace SabreTools.Metadata.Filter.Test
|
|||||||
Tags = "tags",
|
Tags = "tags",
|
||||||
TitleID = "titleid",
|
TitleID = "titleid",
|
||||||
Url = "url",
|
Url = "url",
|
||||||
|
Version = "version",
|
||||||
Year = "year",
|
Year = "year",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1600,6 +1600,9 @@ namespace SabreTools.Metadata.Filter
|
|||||||
case "score":
|
case "score":
|
||||||
checkValue = obj.Score;
|
checkValue = obj.Score;
|
||||||
return true;
|
return true;
|
||||||
|
case "serial":
|
||||||
|
checkValue = obj.Serial;
|
||||||
|
return true;
|
||||||
case "source":
|
case "source":
|
||||||
checkValue = obj.Source;
|
checkValue = obj.Source;
|
||||||
return true;
|
return true;
|
||||||
@@ -1630,6 +1633,9 @@ namespace SabreTools.Metadata.Filter
|
|||||||
case "url":
|
case "url":
|
||||||
checkValue = obj.Url;
|
checkValue = obj.Url;
|
||||||
return true;
|
return true;
|
||||||
|
case "version":
|
||||||
|
checkValue = obj.Version;
|
||||||
|
return true;
|
||||||
case "year":
|
case "year":
|
||||||
checkValue = obj.Year;
|
checkValue = obj.Year;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -257,6 +257,8 @@ namespace SabreTools.Serialization.CrossModel.Test
|
|||||||
gameBase.Year = "year";
|
gameBase.Year = "year";
|
||||||
gameBase.Manufacturer = "manufacturer";
|
gameBase.Manufacturer = "manufacturer";
|
||||||
gameBase.Publisher = "publisher";
|
gameBase.Publisher = "publisher";
|
||||||
|
gameBase.Serial = "serial";
|
||||||
|
gameBase.Version = "version";
|
||||||
gameBase.Category = ["category"];
|
gameBase.Category = ["category"];
|
||||||
gameBase.Trurip = trurip;
|
gameBase.Trurip = trurip;
|
||||||
gameBase.Release = [release];
|
gameBase.Release = [release];
|
||||||
@@ -387,6 +389,8 @@ namespace SabreTools.Serialization.CrossModel.Test
|
|||||||
Assert.Equal("year", gb.Year);
|
Assert.Equal("year", gb.Year);
|
||||||
Assert.Equal("manufacturer", gb.Manufacturer);
|
Assert.Equal("manufacturer", gb.Manufacturer);
|
||||||
Assert.Equal("publisher", gb.Publisher);
|
Assert.Equal("publisher", gb.Publisher);
|
||||||
|
Assert.Equal("serial", gb.Serial);
|
||||||
|
Assert.Equal("version", gb.Version);
|
||||||
|
|
||||||
Assert.NotNull(gb.Category);
|
Assert.NotNull(gb.Category);
|
||||||
string category = Assert.Single(gb.Category);
|
string category = Assert.Single(gb.Category);
|
||||||
|
|||||||
@@ -135,6 +135,8 @@ namespace SabreTools.Serialization.CrossModel
|
|||||||
gameBase.Year = item.Year;
|
gameBase.Year = item.Year;
|
||||||
gameBase.Manufacturer = item.Manufacturer;
|
gameBase.Manufacturer = item.Manufacturer;
|
||||||
gameBase.Publisher = item.Publisher;
|
gameBase.Publisher = item.Publisher;
|
||||||
|
gameBase.Serial = item.Serial;
|
||||||
|
gameBase.Version = item.Version;
|
||||||
gameBase.Category = item.Category;
|
gameBase.Category = item.Category;
|
||||||
|
|
||||||
if (item.TitleID is not null
|
if (item.TitleID is not null
|
||||||
|
|||||||
@@ -144,6 +144,8 @@ namespace SabreTools.Serialization.CrossModel
|
|||||||
Name = machineName,
|
Name = machineName,
|
||||||
Players = item.Trurip?.Players,
|
Players = item.Trurip?.Players,
|
||||||
Publisher = item.Publisher ?? item.Trurip?.Publisher,
|
Publisher = item.Publisher ?? item.Trurip?.Publisher,
|
||||||
|
Serial = item.Serial,
|
||||||
|
Version = item.Version,
|
||||||
Ratings = item.Trurip?.Ratings,
|
Ratings = item.Trurip?.Ratings,
|
||||||
RebuildTo = item.RebuildTo,
|
RebuildTo = item.RebuildTo,
|
||||||
RelatedTo = item.Trurip?.RelatedTo,
|
RelatedTo = item.Trurip?.RelatedTo,
|
||||||
|
|||||||
@@ -322,6 +322,8 @@ namespace SabreTools.Serialization.Readers.Test
|
|||||||
gameBase.Year = "year";
|
gameBase.Year = "year";
|
||||||
gameBase.Manufacturer = "manufacturer";
|
gameBase.Manufacturer = "manufacturer";
|
||||||
gameBase.Publisher = "publisher";
|
gameBase.Publisher = "publisher";
|
||||||
|
gameBase.Serial = "serial";
|
||||||
|
gameBase.Version = "version";
|
||||||
gameBase.Category = ["category"];
|
gameBase.Category = ["category"];
|
||||||
gameBase.Trurip = trurip;
|
gameBase.Trurip = trurip;
|
||||||
gameBase.Release = [release];
|
gameBase.Release = [release];
|
||||||
@@ -437,6 +439,8 @@ namespace SabreTools.Serialization.Readers.Test
|
|||||||
Assert.Equal("year", gb.Year);
|
Assert.Equal("year", gb.Year);
|
||||||
Assert.Equal("manufacturer", gb.Manufacturer);
|
Assert.Equal("manufacturer", gb.Manufacturer);
|
||||||
Assert.Equal("publisher", gb.Publisher);
|
Assert.Equal("publisher", gb.Publisher);
|
||||||
|
Assert.Equal("serial", gb.Serial);
|
||||||
|
Assert.Equal("version", gb.Version);
|
||||||
|
|
||||||
Assert.NotNull(gb.Category);
|
Assert.NotNull(gb.Category);
|
||||||
string category = Assert.Single(gb.Category);
|
string category = Assert.Single(gb.Category);
|
||||||
|
|||||||
@@ -587,6 +587,18 @@ namespace SabreTools.Serialization.Readers
|
|||||||
|
|
||||||
obj.Publisher = reader.ReadElementContentAsString();
|
obj.Publisher = reader.ReadElementContentAsString();
|
||||||
break;
|
break;
|
||||||
|
case "serial":
|
||||||
|
if (obj.Serial is not null && Debug)
|
||||||
|
Console.WriteLine($"'{reader.Name}' element already found, overwriting");
|
||||||
|
|
||||||
|
obj.Serial = reader.ReadElementContentAsString();
|
||||||
|
break;
|
||||||
|
case "version":
|
||||||
|
if (obj.Version is not null && Debug)
|
||||||
|
Console.WriteLine($"'{reader.Name}' element already found, overwriting");
|
||||||
|
|
||||||
|
obj.Version = reader.ReadElementContentAsString();
|
||||||
|
break;
|
||||||
case "category":
|
case "category":
|
||||||
var category = reader.ReadElementContentAsString();
|
var category = reader.ReadElementContentAsString();
|
||||||
if (category is not null)
|
if (category is not null)
|
||||||
|
|||||||
@@ -373,6 +373,8 @@ namespace SabreTools.Serialization.Writers
|
|||||||
writer.WriteOptionalElementString("year", obj.Year);
|
writer.WriteOptionalElementString("year", obj.Year);
|
||||||
writer.WriteOptionalElementString("manufacturer", obj.Manufacturer);
|
writer.WriteOptionalElementString("manufacturer", obj.Manufacturer);
|
||||||
writer.WriteOptionalElementString("publisher", obj.Publisher);
|
writer.WriteOptionalElementString("publisher", obj.Publisher);
|
||||||
|
writer.WriteOptionalElementString("serial", obj.Serial);
|
||||||
|
writer.WriteOptionalElementString("version", obj.Version);
|
||||||
|
|
||||||
if (obj.Category is not null && obj.Category.Length > 0)
|
if (obj.Category is not null && obj.Category.Length > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user