diff --git a/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs b/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs
index 55110fa..fe84f64 100644
--- a/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs
+++ b/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs
@@ -40,6 +40,69 @@ namespace SabreTools.RedumpLib.Test.Data
#endregion
+ #region Disc Category
+
+ ///
+ /// Check that every DiscCategory has a long name provided
+ ///
+ /// DiscCategory value to check
+ /// True to expect a null value, false otherwise
+ [Theory]
+ [MemberData(nameof(GenerateDiscCategoryTestData))]
+ public void DiscCategory_LongName(DiscCategory? discCategory, bool expectNull)
+ {
+ var actual = discCategory.LongName();
+
+ if (expectNull)
+ Assert.Null(actual);
+ else
+ Assert.NotNull(actual);
+ }
+
+ ///
+ /// Check that every DiscCategory can be mapped from a string
+ ///
+ /// DiscCategory value to check
+ /// True to expect a null value, false otherwise
+ [Theory]
+ [MemberData(nameof(GenerateDiscCategoryTestData))]
+ public void DiscCategory_ToDiscCategory(DiscCategory? discCategory, bool expectNull)
+ {
+ string? longName = discCategory.LongName();
+ string? longNameSpaceless = longName?.Replace(" ", string.Empty);
+
+ var actualNormal = longName.ToDiscCategory();
+ var actualSpaceless = longNameSpaceless.ToDiscCategory();
+
+ if (expectNull)
+ {
+ Assert.Null(actualNormal);
+ Assert.Null(actualSpaceless);
+ }
+ else
+ {
+ Assert.Equal(discCategory, actualNormal);
+ Assert.Equal(discCategory, actualSpaceless);
+ }
+ }
+
+ ///
+ /// Generate a test set of DiscCategory values
+ ///
+ /// MemberData-compatible list of DiscCategory values
+ public static TheoryData GenerateDiscCategoryTestData()
+ {
+ var testData = new TheoryData() { { null, true } };
+ foreach (DiscCategory? discCategory in Enum.GetValues().Cast())
+ {
+ testData.Add(discCategory, false);
+ }
+
+ return testData;
+ }
+
+ #endregion
+
#region Language
///
diff --git a/SabreTools.RedumpLib.Test/RedumpInfo/ExtensionsTests.cs b/SabreTools.RedumpLib.Test/RedumpInfo/ExtensionsTests.cs
index 57adda1..810b290 100644
--- a/SabreTools.RedumpLib.Test/RedumpInfo/ExtensionsTests.cs
+++ b/SabreTools.RedumpLib.Test/RedumpInfo/ExtensionsTests.cs
@@ -117,69 +117,6 @@ namespace SabreTools.RedumpLib.Test.RedumpInfo
#endregion
- #region Disc Category
-
- ///
- /// Check that every DiscCategory has a long name provided
- ///
- /// DiscCategory value to check
- /// True to expect a null value, false otherwise
- [Theory]
- [MemberData(nameof(GenerateDiscCategoryTestData))]
- public void DiscCategory_LongName(DiscCategory? discCategory, bool expectNull)
- {
- var actual = discCategory.LongName();
-
- if (expectNull)
- Assert.Null(actual);
- else
- Assert.NotNull(actual);
- }
-
- ///
- /// Check that every DiscCategory can be mapped from a string
- ///
- /// DiscCategory value to check
- /// True to expect a null value, false otherwise
- [Theory]
- [MemberData(nameof(GenerateDiscCategoryTestData))]
- public void DiscCategory_ToDiscCategory(DiscCategory? discCategory, bool expectNull)
- {
- string? longName = discCategory.LongName();
- string? longNameSpaceless = longName?.Replace(" ", string.Empty);
-
- var actualNormal = longName.ToDiscCategory();
- var actualSpaceless = longNameSpaceless.ToDiscCategory();
-
- if (expectNull)
- {
- Assert.Null(actualNormal);
- Assert.Null(actualSpaceless);
- }
- else
- {
- Assert.Equal(discCategory, actualNormal);
- Assert.Equal(discCategory, actualSpaceless);
- }
- }
-
- ///
- /// Generate a test set of DiscCategory values
- ///
- /// MemberData-compatible list of DiscCategory values
- public static TheoryData GenerateDiscCategoryTestData()
- {
- var testData = new TheoryData() { { null, true } };
- foreach (DiscCategory? discCategory in Enum.GetValues().Cast())
- {
- testData.Add(discCategory, false);
- }
-
- return testData;
- }
-
- #endregion
-
#region Disc Subpath
///
diff --git a/SabreTools.RedumpLib.Test/RedumpOrg/ExtensionsTests.cs b/SabreTools.RedumpLib.Test/RedumpOrg/ExtensionsTests.cs
index 39615cd..78dbf67 100644
--- a/SabreTools.RedumpLib.Test/RedumpOrg/ExtensionsTests.cs
+++ b/SabreTools.RedumpLib.Test/RedumpOrg/ExtensionsTests.cs
@@ -118,69 +118,6 @@ namespace SabreTools.RedumpLib.Test.RedumpOrg
#endregion
- #region Disc Category
-
- ///
- /// Check that every DiscCategory has a long name provided
- ///
- /// DiscCategory value to check
- /// True to expect a null value, false otherwise
- [Theory]
- [MemberData(nameof(GenerateDiscCategoryTestData))]
- public void DiscCategory_LongName(DiscCategory? discCategory, bool expectNull)
- {
- var actual = discCategory.LongName();
-
- if (expectNull)
- Assert.Null(actual);
- else
- Assert.NotNull(actual);
- }
-
- ///
- /// Check that every DiscCategory can be mapped from a string
- ///
- /// DiscCategory value to check
- /// True to expect a null value, false otherwise
- [Theory]
- [MemberData(nameof(GenerateDiscCategoryTestData))]
- public void DiscCategory_ToDiscCategory(DiscCategory? discCategory, bool expectNull)
- {
- string? longName = discCategory.LongName();
- string? longNameSpaceless = longName?.Replace(" ", string.Empty);
-
- var actualNormal = longName.ToDiscCategory();
- var actualSpaceless = longNameSpaceless.ToDiscCategory();
-
- if (expectNull)
- {
- Assert.Null(actualNormal);
- Assert.Null(actualSpaceless);
- }
- else
- {
- Assert.Equal(discCategory, actualNormal);
- Assert.Equal(discCategory, actualSpaceless);
- }
- }
-
- ///
- /// Generate a test set of DiscCategory values
- ///
- /// MemberData-compatible list of DiscCategory values
- public static TheoryData GenerateDiscCategoryTestData()
- {
- var testData = new TheoryData() { { null, true } };
- foreach (DiscCategory? discCategory in Enum.GetValues().Cast())
- {
- testData.Add(discCategory, false);
- }
-
- return testData;
- }
-
- #endregion
-
#region Disc Subpath
///
diff --git a/SabreTools.RedumpLib/RedumpOrg/Converters/DiscCategoryConverter.cs b/SabreTools.RedumpLib/Converters/DiscCategoryConverter.cs
similarity index 91%
rename from SabreTools.RedumpLib/RedumpOrg/Converters/DiscCategoryConverter.cs
rename to SabreTools.RedumpLib/Converters/DiscCategoryConverter.cs
index 0151b79..49c66c7 100644
--- a/SabreTools.RedumpLib/RedumpOrg/Converters/DiscCategoryConverter.cs
+++ b/SabreTools.RedumpLib/Converters/DiscCategoryConverter.cs
@@ -1,9 +1,9 @@
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
-using SabreTools.RedumpLib.RedumpOrg.Data;
+using SabreTools.RedumpLib.Data;
-namespace SabreTools.RedumpLib.RedumpOrg.Converters
+namespace SabreTools.RedumpLib.Converters
{
///
/// Serialize DiscCategory enum values
diff --git a/SabreTools.RedumpLib/Data/Enumerations.cs b/SabreTools.RedumpLib/Data/Enumerations.cs
index 77fd6f0..50b4366 100644
--- a/SabreTools.RedumpLib/Data/Enumerations.cs
+++ b/SabreTools.RedumpLib/Data/Enumerations.cs
@@ -2,6 +2,45 @@ using SabreTools.RedumpLib.Attributes;
namespace SabreTools.RedumpLib.Data
{
+ ///
+ /// List of all disc categories
+ ///
+ public enum DiscCategory
+ {
+ [HumanReadable(LongName = "Games")]
+ Games = 1,
+
+ [HumanReadable(LongName = "Demos")]
+ Demos = 2,
+
+ [HumanReadable(LongName = "Video")]
+ Video = 3,
+
+ [HumanReadable(LongName = "Audio")]
+ Audio = 4,
+
+ [HumanReadable(LongName = "Multimedia")]
+ Multimedia = 5,
+
+ [HumanReadable(LongName = "Applications")]
+ Applications = 6,
+
+ [HumanReadable(LongName = "Coverdiscs")]
+ Coverdiscs = 7,
+
+ [HumanReadable(LongName = "Educational")]
+ Educational = 8,
+
+ [HumanReadable(LongName = "Bonus Discs")]
+ BonusDiscs = 9,
+
+ [HumanReadable(LongName = "Preproduction")]
+ Preproduction = 10,
+
+ [HumanReadable(LongName = "Add-Ons")]
+ AddOns = 11,
+ }
+
///
/// List of all disc langauges
///
diff --git a/SabreTools.RedumpLib/Data/Extensions.cs b/SabreTools.RedumpLib/Data/Extensions.cs
index c003464..cdb86e7 100644
--- a/SabreTools.RedumpLib/Data/Extensions.cs
+++ b/SabreTools.RedumpLib/Data/Extensions.cs
@@ -806,6 +806,45 @@ namespace SabreTools.RedumpLib.Data
#endregion
+ #region Disc Category
+
+ ///
+ /// Get the Redump longnames for each known category
+ ///
+ public static string? LongName(this DiscCategory category)
+ => ((DiscCategory?)category).LongName();
+
+ ///
+ /// Get the Redump longnames for each known category
+ ///
+ public static string? LongName(this DiscCategory? category)
+ => AttributeHelper.GetHumanReadableAttribute(category)?.LongName;
+
+ ///
+ /// Get the Category enum value for a given string
+ ///
+ /// String value to convert
+ /// Category represented by the string, if possible
+ public static DiscCategory? ToDiscCategory(this string? category)
+ {
+ // No value means no match
+ if (category is null || category.Length == 0)
+ return null;
+
+ category = category?.ToLowerInvariant();
+ var categories = (DiscCategory[])Enum.GetValues(typeof(DiscCategory));
+
+ // Check long names
+ int index = Array.FindIndex(categories, c => category == c.LongName()?.ToLowerInvariant()
+ || category == c.LongName()?.Replace(" ", string.Empty)?.ToLowerInvariant());
+ if (index > -1)
+ return categories[index];
+
+ return null;
+ }
+
+ #endregion
+
#region Language
///
diff --git a/SabreTools.RedumpLib/RedumpInfo/Converters/DiscCategoryConverter.cs b/SabreTools.RedumpLib/RedumpInfo/Converters/DiscCategoryConverter.cs
deleted file mode 100644
index 56ba4d8..0000000
--- a/SabreTools.RedumpLib/RedumpInfo/Converters/DiscCategoryConverter.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using SabreTools.RedumpLib.RedumpInfo.Data;
-
-namespace SabreTools.RedumpLib.RedumpInfo.Converters
-{
- ///
- /// Serialize DiscCategory enum values
- ///
- public class DiscCategoryConverter : JsonConverter
- {
- public override bool CanRead { get { return true; } }
-
- public override DiscCategory? ReadJson(JsonReader reader, Type objectType, DiscCategory? existingValue, bool hasExistingValue, JsonSerializer serializer)
- {
- // If we have a value already, don't overwrite it
- if (hasExistingValue)
- return existingValue;
-
- // Read the value
- if (reader.Value is not string value)
- return null;
-
- // Try to parse the value
- return value.ToDiscCategory();
- }
-
- public override void WriteJson(JsonWriter writer, DiscCategory? value, JsonSerializer serializer)
- {
- JToken t = JToken.FromObject(value.LongName() ?? string.Empty);
- t.WriteTo(writer);
- }
- }
-}
diff --git a/SabreTools.RedumpLib/RedumpInfo/Data/Enumerations.cs b/SabreTools.RedumpLib/RedumpInfo/Data/Enumerations.cs
index 6a50cff..66b270f 100644
--- a/SabreTools.RedumpLib/RedumpInfo/Data/Enumerations.cs
+++ b/SabreTools.RedumpLib/RedumpInfo/Data/Enumerations.cs
@@ -2,45 +2,6 @@ using SabreTools.RedumpLib.Attributes;
namespace SabreTools.RedumpLib.RedumpInfo.Data
{
- ///
- /// List of all disc categories
- ///
- public enum DiscCategory
- {
- [HumanReadable(LongName = "Add-Ons")]
- AddOns,
-
- [HumanReadable(LongName = "Applications")]
- Applications,
-
- [HumanReadable(LongName = "Audio")]
- Audio,
-
- [HumanReadable(LongName = "Bonus Discs")]
- BonusDiscs,
-
- [HumanReadable(LongName = "Coverdiscs")]
- Coverdiscs,
-
- [HumanReadable(LongName = "Demos")]
- Demos,
-
- [HumanReadable(LongName = "Educational")]
- Educational,
-
- [HumanReadable(LongName = "Games")]
- Games,
-
- [HumanReadable(LongName = "Multimedia")]
- Multimedia,
-
- [HumanReadable(LongName = "Preproduction")]
- Preproduction,
-
- [HumanReadable(LongName = "Video")]
- Video,
- }
-
///
/// List of all disc subpaths
///
diff --git a/SabreTools.RedumpLib/RedumpInfo/Data/Extensions.cs b/SabreTools.RedumpLib/RedumpInfo/Data/Extensions.cs
index e856b71..fd78b18 100644
--- a/SabreTools.RedumpLib/RedumpInfo/Data/Extensions.cs
+++ b/SabreTools.RedumpLib/RedumpInfo/Data/Extensions.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections.Generic;
using SabreTools.RedumpLib.Attributes;
using SabreTools.RedumpLib.Data;
@@ -100,45 +99,6 @@ namespace SabreTools.RedumpLib.RedumpInfo.Data
#endregion
- #region Disc Category
-
- ///
- /// Get the Redump longnames for each known category
- ///
- public static string? LongName(this DiscCategory category)
- => ((DiscCategory?)category).LongName();
-
- ///
- /// Get the Redump longnames for each known category
- ///
- public static string? LongName(this DiscCategory? category)
- => AttributeHelper.GetHumanReadableAttribute(category)?.LongName;
-
- ///
- /// Get the Category enum value for a given string
- ///
- /// String value to convert
- /// Category represented by the string, if possible
- public static DiscCategory? ToDiscCategory(this string? category)
- {
- // No value means no match
- if (category is null || category.Length == 0)
- return null;
-
- category = category?.ToLowerInvariant();
- var categories = (DiscCategory[])Enum.GetValues(typeof(DiscCategory));
-
- // Check long names
- int index = Array.FindIndex(categories, c => category == c.LongName()?.ToLowerInvariant()
- || category == c.LongName()?.Replace(" ", string.Empty)?.ToLowerInvariant());
- if (index > -1)
- return categories[index];
-
- return null;
- }
-
- #endregion
-
#region Disc Subpath
///
diff --git a/SabreTools.RedumpLib/RedumpOrg/Data/Enumerations.cs b/SabreTools.RedumpLib/RedumpOrg/Data/Enumerations.cs
index 2e4c299..473da74 100644
--- a/SabreTools.RedumpLib/RedumpOrg/Data/Enumerations.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Data/Enumerations.cs
@@ -2,45 +2,6 @@ using SabreTools.RedumpLib.Attributes;
namespace SabreTools.RedumpLib.RedumpOrg.Data
{
- ///
- /// List of all disc categories
- ///
- public enum DiscCategory
- {
- [HumanReadable(LongName = "Games")]
- Games = 1,
-
- [HumanReadable(LongName = "Demos")]
- Demos = 2,
-
- [HumanReadable(LongName = "Video")]
- Video = 3,
-
- [HumanReadable(LongName = "Audio")]
- Audio = 4,
-
- [HumanReadable(LongName = "Multimedia")]
- Multimedia = 5,
-
- [HumanReadable(LongName = "Applications")]
- Applications = 6,
-
- [HumanReadable(LongName = "Coverdiscs")]
- Coverdiscs = 7,
-
- [HumanReadable(LongName = "Educational")]
- Educational = 8,
-
- [HumanReadable(LongName = "Bonus Discs")]
- BonusDiscs = 9,
-
- [HumanReadable(LongName = "Preproduction")]
- Preproduction = 10,
-
- [HumanReadable(LongName = "Add-Ons")]
- AddOns = 11,
- }
-
///
/// List of all disc subpaths
///
diff --git a/SabreTools.RedumpLib/RedumpOrg/Data/Extensions.cs b/SabreTools.RedumpLib/RedumpOrg/Data/Extensions.cs
index 2f14a03..4996dd1 100644
--- a/SabreTools.RedumpLib/RedumpOrg/Data/Extensions.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Data/Extensions.cs
@@ -71,45 +71,6 @@ namespace SabreTools.RedumpLib.RedumpOrg.Data
#endregion
- #region Disc Category
-
- ///
- /// Get the Redump longnames for each known category
- ///
- public static string? LongName(this DiscCategory category)
- => ((DiscCategory?)category).LongName();
-
- ///
- /// Get the Redump longnames for each known category
- ///
- public static string? LongName(this DiscCategory? category)
- => AttributeHelper.GetHumanReadableAttribute(category)?.LongName;
-
- ///
- /// Get the Category enum value for a given string
- ///
- /// String value to convert
- /// Category represented by the string, if possible
- public static DiscCategory? ToDiscCategory(this string? category)
- {
- // No value means no match
- if (category is null || category.Length == 0)
- return null;
-
- category = category?.ToLowerInvariant();
- var categories = (DiscCategory[])Enum.GetValues(typeof(DiscCategory));
-
- // Check long names
- int index = Array.FindIndex(categories, c => category == c.LongName()?.ToLowerInvariant()
- || category == c.LongName()?.Replace(" ", string.Empty)?.ToLowerInvariant());
- if (index > -1)
- return categories[index];
-
- return null;
- }
-
- #endregion
-
#region Disc Subpath
///