mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Convert if to switch statement.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user