mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Update serials and details objects
This commit is contained in:
228
SabreTools.DatItems/Formats/SourceDetails.cs
Normal file
228
SabreTools.DatItems/Formats/SourceDetails.cs
Normal file
@@ -0,0 +1,228 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Core;
|
||||
|
||||
// TODO: Add item mappings for all fields
|
||||
namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a single source details item
|
||||
/// </summary>
|
||||
[JsonObject("source_details"), XmlRoot("source_details")]
|
||||
public class SourceDetails : DatItem
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Id value
|
||||
/// </summary>
|
||||
/// <remarks>TODO: Is this required?</remarks>
|
||||
[JsonProperty("id", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Section value
|
||||
/// </summary>
|
||||
[JsonProperty("section", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("section")]
|
||||
public string Section { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Rom info value
|
||||
/// </summary>
|
||||
[JsonProperty("rominfo", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("rominfo")]
|
||||
public string RomInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dumping date value
|
||||
/// </summary>
|
||||
[JsonProperty("d_date", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("d_date")]
|
||||
public string DDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dumping date info value
|
||||
/// </summary>
|
||||
[JsonProperty("d_date_info", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("d_date_info")]
|
||||
public string DDateInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Release date value
|
||||
/// </summary>
|
||||
[JsonProperty("r_date", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("r_date")]
|
||||
public string RDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Release date info value
|
||||
/// </summary>
|
||||
[JsonProperty("r_date_info", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("r_date_info")]
|
||||
public string RDateInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Origin value
|
||||
/// </summary>
|
||||
[JsonProperty("origin", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("origin")]
|
||||
public string Origin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Region value
|
||||
/// </summary>
|
||||
[JsonProperty("region", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("region")]
|
||||
public string Region { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Media title value
|
||||
/// </summary>
|
||||
[JsonProperty("media_title", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("media_title")]
|
||||
public string MediaTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dumper value
|
||||
/// </summary>
|
||||
[JsonProperty("dumper", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("dumper")]
|
||||
public string Dumper { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Project value
|
||||
/// </summary>
|
||||
[JsonProperty("project", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("project")]
|
||||
public string Project { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Original format value
|
||||
/// </summary>
|
||||
[JsonProperty("originalformat", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("originalformat")]
|
||||
public string OriginalFormat { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Nodump value
|
||||
/// </summary>
|
||||
[JsonProperty("nodump", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("nodump")]
|
||||
public string Nodump { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Tool value
|
||||
/// </summary>
|
||||
[JsonProperty("tool", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tool")]
|
||||
public string Tool { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Comment 1 value
|
||||
/// </summary>
|
||||
[JsonProperty("comment1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("comment1")]
|
||||
public string Comment1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Link 2 value
|
||||
/// </summary>
|
||||
[JsonProperty("comment2", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("comment2")]
|
||||
public string Comment2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Link 1 value
|
||||
/// </summary>
|
||||
[JsonProperty("link1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("link1")]
|
||||
public string Link1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Link 2 value
|
||||
/// </summary>
|
||||
[JsonProperty("link2", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("link2")]
|
||||
public string Link2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Link 3 value
|
||||
/// </summary>
|
||||
[JsonProperty("link3", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("link3")]
|
||||
public string Link3 { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Create a default, empty SourceDetails object
|
||||
/// </summary>
|
||||
public SourceDetails()
|
||||
{
|
||||
ItemType = ItemType.SourceDetails;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone()
|
||||
{
|
||||
return new SourceDetails()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
Id = this.Id,
|
||||
Section = this.Section,
|
||||
RomInfo = this.RomInfo,
|
||||
DDate = this.DDate,
|
||||
DDateInfo = this.DDateInfo,
|
||||
RDate = this.RDate,
|
||||
RDateInfo = this.RDateInfo,
|
||||
Origin = this.Origin,
|
||||
Region = this.Region,
|
||||
MediaTitle = this.MediaTitle,
|
||||
Dumper = this.Dumper,
|
||||
Project = this.Project,
|
||||
OriginalFormat = this.OriginalFormat,
|
||||
Nodump = this.Nodump,
|
||||
Tool = this.Tool,
|
||||
Comment1 = this.Comment1,
|
||||
Comment2 = this.Comment2,
|
||||
Link1 = this.Link1,
|
||||
Link2 = this.Link2,
|
||||
Link3 = this.Link3,
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Comparision Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(DatItem other)
|
||||
{
|
||||
// If we don't have a SourceDetails, return false
|
||||
if (ItemType != other.ItemType)
|
||||
return false;
|
||||
|
||||
// Otherwise, treat it as a SourceDetails
|
||||
SourceDetails newOther = other as SourceDetails;
|
||||
|
||||
// If the Details information matches
|
||||
return (Id == newOther.Id
|
||||
&& Section == newOther.Section
|
||||
&& RomInfo == newOther.RomInfo
|
||||
&& DDate == newOther.DDate
|
||||
&& DDateInfo == newOther.DDateInfo
|
||||
&& RomInfo == newOther.RomInfo
|
||||
&& RDate == newOther.RDate
|
||||
&& RDateInfo == newOther.RDateInfo
|
||||
&& Origin == newOther.Origin
|
||||
&& Region == newOther.Region
|
||||
&& MediaTitle == newOther.MediaTitle
|
||||
&& Dumper == newOther.Dumper
|
||||
&& Project == newOther.Project
|
||||
&& OriginalFormat == newOther.OriginalFormat
|
||||
&& Nodump == newOther.Nodump
|
||||
&& Tool == newOther.Tool
|
||||
&& Comment1 == newOther.Comment1
|
||||
&& Comment2 == newOther.Comment2
|
||||
&& Link1 == newOther.Link1
|
||||
&& Link2 == newOther.Link2
|
||||
&& Link3 == newOther.Link3);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user