From d232bd33467a21ef5e83545765bca706fd5bfbf3 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 5 Dec 2017 13:38:16 -0800 Subject: [PATCH] [Utilities] More helpers --- SabreTools.Library/DatFiles/ClrMamePro.cs | 24 +-------- SabreTools.Library/DatFiles/SeparatedValue.cs | 43 +-------------- SabreTools.Library/Tools/Utilities.cs | 53 +++++++++++++++++++ 3 files changed, 56 insertions(+), 64 deletions(-) diff --git a/SabreTools.Library/DatFiles/ClrMamePro.cs b/SabreTools.Library/DatFiles/ClrMamePro.cs index aef95efe..29e7d98a 100644 --- a/SabreTools.Library/DatFiles/ClrMamePro.cs +++ b/SabreTools.Library/DatFiles/ClrMamePro.cs @@ -113,29 +113,7 @@ namespace SabreTools.Library.DatFiles } // Create the proper DatItem based on the type - DatItem item; - switch (temptype) - { - case ItemType.Archive: - item = new Archive(); - break; - case ItemType.BiosSet: - item = new BiosSet(); - break; - case ItemType.Disk: - item = new Disk(); - break; - case ItemType.Release: - item = new Release(); - break; - case ItemType.Sample: - item = new Sample(); - break; - case ItemType.Rom: - default: - item = new Rom(); - break; - } + DatItem item = Utilities.GetDatItem(temptype); // Then populate it with information item.MachineName = tempgamename; diff --git a/SabreTools.Library/DatFiles/SeparatedValue.cs b/SabreTools.Library/DatFiles/SeparatedValue.cs index ce7017c1..18bb7ac7 100644 --- a/SabreTools.Library/DatFiles/SeparatedValue.cs +++ b/SabreTools.Library/DatFiles/SeparatedValue.cs @@ -204,27 +204,7 @@ namespace SabreTools.Library.DatFiles machineDesc = value; break; case "DatItem.Type": - switch (value.ToLowerInvariant()) - { - case "archive": - itemType = ItemType.Archive; - break; - case "biosset": - itemType = ItemType.BiosSet; - break; - case "disk": - itemType = ItemType.Disk; - break; - case "release": - itemType = ItemType.Release; - break; - case "rom": - itemType = ItemType.Rom; - break; - case "sample": - itemType = ItemType.Sample; - break; - } + itemType = Utilities.GetItemType(value) ?? ItemType.Rom; break; case "Rom.Name": case "Disk.Name": @@ -255,26 +235,7 @@ namespace SabreTools.Library.DatFiles sha512 = value; break; case "DatItem.Nodump": - switch (value.ToLowerInvariant()) - { - case "baddump": - status = ItemStatus.BadDump; - break; - case "good": - status = ItemStatus.Good; - break; - case "no": - case "none": - status = ItemStatus.None; - break; - case "nodump": - case "yes": - status = ItemStatus.Nodump; - break; - case "verified": - status = ItemStatus.Verified; - break; - } + status = Utilities.GetItemStatus(value); break; } } diff --git a/SabreTools.Library/Tools/Utilities.cs b/SabreTools.Library/Tools/Utilities.cs index a2c328ca..e2181ee1 100644 --- a/SabreTools.Library/Tools/Utilities.cs +++ b/SabreTools.Library/Tools/Utilities.cs @@ -372,6 +372,7 @@ namespace SabreTools.Library.Tools switch (status?.ToLowerInvariant()) { case "none": + case "no": default: return ItemStatus.None; case "good": @@ -379,12 +380,39 @@ namespace SabreTools.Library.Tools case "baddump": return ItemStatus.BadDump; case "nodump": + case "yes": return ItemStatus.Nodump; case "verified": return ItemStatus.Verified; } } + /// + /// Get ItemType? value from input string + /// + /// String to get value from + /// ItemType? value corresponding to the string + public static ItemType? GetItemType(string itemType) + { + switch (itemType?.ToLowerInvariant()) + { + case "archive": + return ItemType.Archive; + case "biosset": + return ItemType.BiosSet; + case "disk": + return ItemType.Disk; + case "release": + return ItemType.Release; + case "rom": + return ItemType.Rom; + case "sample": + return ItemType.Sample; + default: + return null; + } + } + /// /// Get MachineType value from input string /// @@ -754,6 +782,31 @@ namespace SabreTools.Library.Tools return null; } + /// + /// Create a specific type of DatItem to be used based on an ItemType + /// + /// Type of the DatItem to be created + /// DatItem of the specific internal type that corresponds to the inputs + public static DatItem GetDatItem(ItemType itemType) + { + switch (itemType) + { + case ItemType.Archive: + return new Archive(); + case ItemType.BiosSet: + return new BiosSet(); + case ItemType.Disk: + return new Disk(); + case ItemType.Release: + return new Release(); + case ItemType.Sample: + return new Sample(); + case ItemType.Rom: + default: + return new Rom(); + } + } + #endregion #region File Information