From 77c09b7d4a2cfdad6bba1c4623789a5bf0624a9e Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 23 Feb 2018 14:19:07 -0800 Subject: [PATCH] [Utilities] Move method to different section --- SabreTools.Library/Tools/Utilities.cs | 168 +++++++++++++------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/SabreTools.Library/Tools/Utilities.cs b/SabreTools.Library/Tools/Utilities.cs index 9e7ac9cc..c0702b8f 100644 --- a/SabreTools.Library/Tools/Utilities.cs +++ b/SabreTools.Library/Tools/Utilities.cs @@ -2420,6 +2420,90 @@ namespace SabreTools.Library.Tools return ext; } + /// + /// Get the dictionary key that should be used for a given item and sorting type + /// + /// DatItem to get the key for + /// SortedBy enum representing what key to get + /// True if the key should be lowercased (default), false otherwise + /// True if games should only be compared on game and file name, false if system and source are counted + /// String representing the key to be used for the DatItem + public static string GetKeyFromDatItem(DatItem item, SortedBy sortedBy, bool lower = true, bool norename = true) + { + // Set the output key as the default blank string + string key = ""; + + // Now determine what the key should be based on the sortedBy value + switch (sortedBy) + { + case SortedBy.CRC: + key = (item.Type == ItemType.Rom ? ((Rom)item).CRC : Constants.CRCZero); + break; + case SortedBy.Game: + key = (norename ? "" + : item.SystemID.ToString().PadLeft(10, '0') + + "-" + + item.SourceID.ToString().PadLeft(10, '0') + "-") + + (String.IsNullOrWhiteSpace(item.MachineName) + ? "Default" + : item.MachineName); + if (lower) + { + key = key.ToLowerInvariant(); + } + if (key == null) + { + key = "null"; + } + + key = HttpUtility.HtmlEncode(key); + break; + case SortedBy.MD5: + key = (item.Type == ItemType.Rom + ? ((Rom)item).MD5 + : (item.Type == ItemType.Disk + ? ((Disk)item).MD5 + : Constants.MD5Zero)); + break; + case SortedBy.SHA1: + key = (item.Type == ItemType.Rom + ? ((Rom)item).SHA1 + : (item.Type == ItemType.Disk + ? ((Disk)item).SHA1 + : Constants.SHA1Zero)); + break; + case SortedBy.SHA256: + key = (item.Type == ItemType.Rom + ? ((Rom)item).SHA256 + : (item.Type == ItemType.Disk + ? ((Disk)item).SHA256 + : Constants.SHA256Zero)); + break; + case SortedBy.SHA384: + key = (item.Type == ItemType.Rom + ? ((Rom)item).SHA384 + : (item.Type == ItemType.Disk + ? ((Disk)item).SHA384 + : Constants.SHA384Zero)); + break; + case SortedBy.SHA512: + key = (item.Type == ItemType.Rom + ? ((Rom)item).SHA512 + : (item.Type == ItemType.Disk + ? ((Disk)item).SHA512 + : Constants.SHA512Zero)); + break; + } + + // Double and triple check the key for corner cases + if (key == null) + { + key = ""; + } + + return key; + } + /// /// Get the proper output path for a given input file and output directory /// @@ -2717,90 +2801,6 @@ namespace SabreTools.Library.Tools return true; } - /// - /// Get the dictionary key that should be used for a given item and sorting type - /// - /// DatItem to get the key for - /// SortedBy enum representing what key to get - /// True if the key should be lowercased (default), false otherwise - /// True if games should only be compared on game and file name, false if system and source are counted - /// String representing the key to be used for the DatItem - public static string GetKeyFromDatItem(DatItem item, SortedBy sortedBy, bool lower = true, bool norename = true) - { - // Set the output key as the default blank string - string key = ""; - - // Now determine what the key should be based on the sortedBy value - switch (sortedBy) - { - case SortedBy.CRC: - key = (item.Type == ItemType.Rom ? ((Rom)item).CRC : Constants.CRCZero); - break; - case SortedBy.Game: - key = (norename ? "" - : item.SystemID.ToString().PadLeft(10, '0') - + "-" - + item.SourceID.ToString().PadLeft(10, '0') + "-") - + (String.IsNullOrWhiteSpace(item.MachineName) - ? "Default" - : item.MachineName); - if (lower) - { - key = key.ToLowerInvariant(); - } - if (key == null) - { - key = "null"; - } - - key = HttpUtility.HtmlEncode(key); - break; - case SortedBy.MD5: - key = (item.Type == ItemType.Rom - ? ((Rom)item).MD5 - : (item.Type == ItemType.Disk - ? ((Disk)item).MD5 - : Constants.MD5Zero)); - break; - case SortedBy.SHA1: - key = (item.Type == ItemType.Rom - ? ((Rom)item).SHA1 - : (item.Type == ItemType.Disk - ? ((Disk)item).SHA1 - : Constants.SHA1Zero)); - break; - case SortedBy.SHA256: - key = (item.Type == ItemType.Rom - ? ((Rom)item).SHA256 - : (item.Type == ItemType.Disk - ? ((Disk)item).SHA256 - : Constants.SHA256Zero)); - break; - case SortedBy.SHA384: - key = (item.Type == ItemType.Rom - ? ((Rom)item).SHA384 - : (item.Type == ItemType.Disk - ? ((Disk)item).SHA384 - : Constants.SHA384Zero)); - break; - case SortedBy.SHA512: - key = (item.Type == ItemType.Rom - ? ((Rom)item).SHA512 - : (item.Type == ItemType.Disk - ? ((Disk)item).SHA512 - : Constants.SHA512Zero)); - break; - } - - // Double and triple check the key for corner cases - if (key == null) - { - key = ""; - } - - return key; - } - /// /// Returns the human-readable file size for an arbitrary, 64-bit file size /// The default format is "0.### XB", e.g. "4.2 KB" or "1.434 GB"