Convert if to switch statement.

This commit is contained in:
2022-11-13 19:38:03 +00:00
parent 98d7ac3349
commit c5b34ee3d9
65 changed files with 2602 additions and 2126 deletions

View File

@@ -430,193 +430,192 @@ public sealed class ScsiInfoViewModel : ViewModelBase
var evpdPageTitle = "";
string evpdDecodedPage;
if(page.Key >= 0x01 &&
page.Key <= 0x7F)
switch(page.Key)
{
evpdPageTitle = $"ASCII Page {page.Key:X2}h";
evpdDecodedPage = EVPD.DecodeASCIIPage(page.Value);
}
else if(page.Key == 0x80)
{
evpdPageTitle = "Unit Serial Number";
evpdDecodedPage = EVPD.DecodePage80(page.Value);
}
else if(page.Key == 0x81)
{
evpdPageTitle = "SCSI Implemented operating definitions";
evpdDecodedPage = EVPD.PrettifyPage_81(page.Value);
}
else if(page.Key == 0x82)
{
evpdPageTitle = "ASCII implemented operating definitions";
evpdDecodedPage = EVPD.DecodePage82(page.Value);
}
else if(page.Key == 0x83)
{
evpdPageTitle = "SCSI Device identification";
evpdDecodedPage = EVPD.PrettifyPage_83(page.Value);
}
else if(page.Key == 0x84)
{
evpdPageTitle = "SCSI Software Interface Identifiers";
evpdDecodedPage = EVPD.PrettifyPage_84(page.Value);
}
else if(page.Key == 0x85)
{
evpdPageTitle = "SCSI Management Network Addresses";
evpdDecodedPage = EVPD.PrettifyPage_85(page.Value);
}
else if(page.Key == 0x86)
{
evpdPageTitle = "SCSI Extended INQUIRY Data";
evpdDecodedPage = EVPD.PrettifyPage_86(page.Value);
}
else if(page.Key == 0x89)
{
evpdPageTitle = "SCSI to ATA Translation Layer Data";
evpdDecodedPage = EVPD.PrettifyPage_89(page.Value);
}
else if(page.Key == 0xB0)
{
evpdPageTitle = "SCSI Sequential-access Device Capabilities";
evpdDecodedPage = EVPD.PrettifyPage_B0(page.Value);
}
else if(page.Key == 0xB1)
{
evpdPageTitle = "Manufacturer-assigned Serial Number";
evpdDecodedPage = EVPD.DecodePageB1(page.Value);
}
else if(page.Key == 0xB2)
{
evpdPageTitle = "TapeAlert Supported Flags Bitmap";
evpdDecodedPage = $"0x{EVPD.DecodePageB2(page.Value):X16}";
}
else if(page.Key == 0xB3)
{
evpdPageTitle = "Automation Device Serial Number";
evpdDecodedPage = EVPD.DecodePageB3(page.Value);
}
else if(page.Key == 0xB4)
{
evpdPageTitle = "Data Transfer Device Element Address";
evpdDecodedPage = EVPD.DecodePageB4(page.Value);
}
else if(page.Key == 0xC0 &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"quantum")
{
evpdPageTitle = "Quantum Firmware Build Information page";
evpdDecodedPage = EVPD.PrettifyPage_C0_Quantum(page.Value);
}
else if(page.Key == 0xC0 &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"seagate")
{
evpdPageTitle = "Seagate Firmware Numbers page";
evpdDecodedPage = EVPD.PrettifyPage_C0_Seagate(page.Value);
}
else if(page.Key == 0xC0 &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"ibm")
{
evpdPageTitle = "IBM Drive Component Revision Levels page";
evpdDecodedPage = EVPD.PrettifyPage_C0_IBM(page.Value);
}
else if(page.Key == 0xC1 &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"ibm")
{
evpdPageTitle = "IBM Drive Serial Numbers page";
evpdDecodedPage = EVPD.PrettifyPage_C1_IBM(page.Value);
}
else if(page.Key is 0xC0 or 0xC1 &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"certance")
{
evpdPageTitle = "Certance Drive Component Revision Levels page";
evpdDecodedPage = EVPD.PrettifyPage_C0_C1_Certance(page.Value);
}
else if(page.Key is 0xC2 or 0xC3 or 0xC4 or 0xC5 or 0xC6 &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"certance")
{
switch(page.Key)
case >= 0x01 and <= 0x7F:
evpdPageTitle = $"ASCII Page {page.Key:X2}h";
evpdDecodedPage = EVPD.DecodeASCIIPage(page.Value);
break;
case 0x80:
evpdPageTitle = "Unit Serial Number";
evpdDecodedPage = EVPD.DecodePage80(page.Value);
break;
case 0x81:
evpdPageTitle = "SCSI Implemented operating definitions";
evpdDecodedPage = EVPD.PrettifyPage_81(page.Value);
break;
case 0x82:
evpdPageTitle = "ASCII implemented operating definitions";
evpdDecodedPage = EVPD.DecodePage82(page.Value);
break;
case 0x83:
evpdPageTitle = "SCSI Device identification";
evpdDecodedPage = EVPD.PrettifyPage_83(page.Value);
break;
case 0x84:
evpdPageTitle = "SCSI Software Interface Identifiers";
evpdDecodedPage = EVPD.PrettifyPage_84(page.Value);
break;
case 0x85:
evpdPageTitle = "SCSI Management Network Addresses";
evpdDecodedPage = EVPD.PrettifyPage_85(page.Value);
break;
case 0x86:
evpdPageTitle = "SCSI Extended INQUIRY Data";
evpdDecodedPage = EVPD.PrettifyPage_86(page.Value);
break;
case 0x89:
evpdPageTitle = "SCSI to ATA Translation Layer Data";
evpdDecodedPage = EVPD.PrettifyPage_89(page.Value);
break;
case 0xB0:
evpdPageTitle = "SCSI Sequential-access Device Capabilities";
evpdDecodedPage = EVPD.PrettifyPage_B0(page.Value);
break;
case 0xB1:
evpdPageTitle = "Manufacturer-assigned Serial Number";
evpdDecodedPage = EVPD.DecodePageB1(page.Value);
break;
case 0xB2:
evpdPageTitle = "TapeAlert Supported Flags Bitmap";
evpdDecodedPage = $"0x{EVPD.DecodePageB2(page.Value):X16}";
break;
case 0xB3:
evpdPageTitle = "Automation Device Serial Number";
evpdDecodedPage = EVPD.DecodePageB3(page.Value);
break;
case 0xB4:
evpdPageTitle = "Data Transfer Device Element Address";
evpdDecodedPage = EVPD.DecodePageB4(page.Value);
break;
case 0xC0 when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "quantum":
evpdPageTitle = "Quantum Firmware Build Information page";
evpdDecodedPage = EVPD.PrettifyPage_C0_Quantum(page.Value);
break;
case 0xC0 when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "seagate":
evpdPageTitle = "Seagate Firmware Numbers page";
evpdDecodedPage = EVPD.PrettifyPage_C0_Seagate(page.Value);
break;
case 0xC0 when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "ibm":
evpdPageTitle = "IBM Drive Component Revision Levels page";
evpdDecodedPage = EVPD.PrettifyPage_C0_IBM(page.Value);
break;
case 0xC1 when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "ibm":
evpdPageTitle = "IBM Drive Serial Numbers page";
evpdDecodedPage = EVPD.PrettifyPage_C1_IBM(page.Value);
break;
case 0xC0 or 0xC1
when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "certance":
evpdPageTitle = "Certance Drive Component Revision Levels page";
evpdDecodedPage = EVPD.PrettifyPage_C0_C1_Certance(page.Value);
break;
case 0xC2 or 0xC3 or 0xC4 or 0xC5 or 0xC6
when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "certance":
switch(page.Key)
{
case 0xC2:
evpdPageTitle = "Head Assembly Serial Number";
break;
case 0xC3:
evpdPageTitle = "Reel Motor 1 Serial Number";
break;
case 0xC4:
evpdPageTitle = "Reel Motor 2 Serial Number";
break;
case 0xC5:
evpdPageTitle = "Board Serial Number";
break;
case 0xC6:
evpdPageTitle = "Base Mechanical Serial Number";
break;
}
evpdDecodedPage = EVPD.PrettifyPage_C2_C3_C4_C5_C6_Certance(page.Value);
break;
case 0xC0 or 0xC1 or 0xC2 or 0xC3 or 0xC4 or 0xC5
when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "hp":
switch(page.Key)
{
case 0xC0:
evpdPageTitle = "HP Drive Firmware Revision Levels page:";
break;
case 0xC1:
evpdPageTitle = "HP Drive Hardware Revision Levels page:";
break;
case 0xC2:
evpdPageTitle = "HP Drive PCA Revision Levels page:";
break;
case 0xC3:
evpdPageTitle = "HP Drive Mechanism Revision Levels page:";
break;
case 0xC4:
evpdPageTitle = "HP Drive Head Assembly Revision Levels page:";
break;
case 0xC5:
evpdPageTitle = "HP Drive ACI Revision Levels page:";
break;
}
evpdDecodedPage = EVPD.PrettifyPage_C0_to_C5_HP(page.Value);
break;
case 0xDF when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().
Trim() == "certance":
evpdPageTitle = "Certance drive status page";
evpdDecodedPage = EVPD.PrettifyPage_DF_Certance(page.Value);
break;
default:
{
case 0xC2:
evpdPageTitle = "Head Assembly Serial Number";
if(page.Key == 0x00)
continue;
break;
case 0xC3:
evpdPageTitle = "Reel Motor 1 Serial Number";
evpdPageTitle = $"Page {page.Key:X2}h";
evpdDecodedPage = "Undecoded";
break;
case 0xC4:
evpdPageTitle = "Reel Motor 2 Serial Number";
AaruConsole.DebugWriteLine("Device-Info command", "Found undecoded SCSI VPD page 0x{0:X2}",
page.Key);
break;
case 0xC5:
evpdPageTitle = "Board Serial Number";
break;
case 0xC6:
evpdPageTitle = "Base Mechanical Serial Number";
break;
break;
}
evpdDecodedPage = EVPD.PrettifyPage_C2_C3_C4_C5_C6_Certance(page.Value);
}
else if(page.Key is 0xC0 or 0xC1 or 0xC2 or 0xC3 or 0xC4 or 0xC5 &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"hp")
{
switch(page.Key)
{
case 0xC0:
evpdPageTitle = "HP Drive Firmware Revision Levels page:";
break;
case 0xC1:
evpdPageTitle = "HP Drive Hardware Revision Levels page:";
break;
case 0xC2:
evpdPageTitle = "HP Drive PCA Revision Levels page:";
break;
case 0xC3:
evpdPageTitle = "HP Drive Mechanism Revision Levels page:";
break;
case 0xC4:
evpdPageTitle = "HP Drive Head Assembly Revision Levels page:";
break;
case 0xC5:
evpdPageTitle = "HP Drive ACI Revision Levels page:";
break;
}
evpdDecodedPage = EVPD.PrettifyPage_C0_to_C5_HP(page.Value);
}
else if(page.Key == 0xDF &&
StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant().Trim() ==
"certance")
{
evpdPageTitle = "Certance drive status page";
evpdDecodedPage = EVPD.PrettifyPage_DF_Certance(page.Value);
}
else
{
if(page.Key == 0x00)
continue;
evpdPageTitle = $"Page {page.Key:X2}h";
evpdDecodedPage = "Undecoded";
AaruConsole.DebugWriteLine("Device-Info command", "Found undecoded SCSI VPD page 0x{0:X2}",
page.Key);
}
EvpdPages.Add(new ScsiPageModel