[DatFile, DatItem, Utilities] Method cleanup

This commit is contained in:
Matt Nadareski
2018-02-23 14:18:02 -08:00
parent 37d854b14b
commit 5118266f8d
3 changed files with 121 additions and 233 deletions

View File

@@ -644,168 +644,11 @@ namespace SabreTools.Library.DatItems
// If we're not already sorted, take care of it
if (!sorted)
{
// If all items are supposed to have a SHA-512, we sort by that
if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA512Count
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA512))
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA512))))
{
datdata.BucketBy(SortedBy.SHA512, DedupeType.None);
}
// If all items are supposed to have a SHA-384, we sort by that
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA384Count
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA384))
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA384))))
{
datdata.BucketBy(SortedBy.SHA384, DedupeType.None);
}
// If all items are supposed to have a SHA-256, we sort by that
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA256Count
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA256))
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA256))))
{
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).SHA256;
datdata.BucketBy(SortedBy.SHA256, DedupeType.None);
}
else
{
key = ((Disk)this).SHA256;
datdata.BucketBy(SortedBy.SHA256, DedupeType.None);
}
}
// If all items are supposed to have a SHA-1, we sort by that
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA1Count
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA1))
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA1))))
{
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).SHA1;
datdata.BucketBy(SortedBy.SHA1, DedupeType.None);
}
else
{
key = ((Disk)this).SHA1;
datdata.BucketBy(SortedBy.SHA1, DedupeType.None);
}
}
// If all items are supposed to have an MD5, we sort by that
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.MD5Count
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).MD5))
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).MD5))))
{
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).MD5;
datdata.BucketBy(SortedBy.MD5, DedupeType.None);
}
else
{
key = ((Disk)this).MD5;
datdata.BucketBy(SortedBy.MD5, DedupeType.None);
}
}
}
datdata.BucketByBestAvailable();
}
// Now that we have the sorted type, we get the proper key
switch (datdata.SortedBy)
{
case SortedBy.SHA512:
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).SHA512;
}
else if (_itemType == ItemType.Disk)
{
key = ((Disk)this).SHA512;
}
break;
case SortedBy.SHA384:
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).SHA384;
}
else if (_itemType == ItemType.Disk)
{
key = ((Disk)this).SHA384;
}
break;
case SortedBy.SHA256:
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).SHA256;
}
else if (_itemType == ItemType.Disk)
{
key = ((Disk)this).SHA256;
}
break;
case SortedBy.SHA1:
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).SHA1;
}
else if (_itemType == ItemType.Disk)
{
key = ((Disk)this).SHA1;
}
break;
case SortedBy.MD5:
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).MD5;
}
else if (_itemType == ItemType.Disk)
{
key = ((Disk)this).MD5;
}
break;
case SortedBy.CRC:
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).CRC;
}
break;
case SortedBy.Game:
key = this.MachineName;
break;
case SortedBy.Size:
if (_itemType == ItemType.Rom)
{
key = ((Rom)this).Size.ToString();
}
break;
}
// If we got here and the key is still null...
if (key == null)
{
// If we've gotten here and we have a Disk, sort by MD5
if (_itemType == ItemType.Disk)
{
key = ((Disk)this).MD5;
datdata.BucketBy(SortedBy.MD5, DedupeType.None);
}
// If we've gotten here and we have a Rom, sort by CRC
else if (_itemType == ItemType.Rom)
{
key = ((Rom)this).CRC;
datdata.BucketBy(SortedBy.CRC, DedupeType.None);
}
// Otherwise, we use -1 as the key
else
{
key = "-1";
datdata.BucketBy(SortedBy.Size, DedupeType.None);
}
}
key = Utilities.GetKeyFromDatItem(this, datdata.SortedBy);
return key;
}