I recently re wrote a small piece of code, and was wondering if I made the code better or worse when I changed it.

Orignal Code:
Code:
Select Case wcoCoverage.LevelID 'Level ID = Policy or Vehicle Id's
              Case wcoWP_CNAuto.ID
                Update_CNAutoAdditionalCoverages(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedAdditionalCoveragesIDs, swcoCoverageCode, False)
              Case Else 'Vehicle id
                If Not p_dictdatVehicles.ContainsKey(wcoCoverage.LevelID) Then Continue For
                If swcoCoverageCode = "VFTP" Then 'Vehicle Limits Total Premium 
                  Dim datVehicle As DILCCA.Vehicle = p_dictdatVehicles(wcoCoverage.LevelID)
                  Dim decPreValue As Decimal = GetCoveragePremium(wcoCompany, wcoCoverage.ID)
                  If decPreValue <> Decimal.Zero Then datVehicle.TotalPremiumPrincipal = decPreValue.ToASCurrency
                  Continue For
                End If
                Select Case True
                  Case lstCodesSurcharges.Contains(swcoCoverageCode)
                    Update_CNAutoSurcharges(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedSurchargesIds, swcoCoverageCode)
                  Case lstCodesDiscounts.Contains(swcoCoverageCode)
                    Update_CNAutoDiscounts(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedDiscountsIds, swcoCoverageCode)
                  Case dictVehicleLimitCodeandIds.ContainsValue(swcoCoverageCode)
                    Update_CNAutoVehicleLimits(datApplicationDetail, wcoCoverage, wcoCompany, dictVehicleLimitCodeandIds, swcoCoverageCode)
                  Case lstCodesPolicyChangeForms.Contains(swcoCoverageCode)
                    Update_CNAutoPolicyChangeForm(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedPolicyFormsIds, sIssusingstate, swcoCoverageCode)
                  Case Else 'Adds to (Auto->Vehicle->Optional Add Coverages/OPCF)
                    Update_CNAutoAdditionalCoverages(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedAdditionalCoveragesIDs, swcoCoverageCode, True)
                End Select
            End Select
New code:
Code:
Select Case True
              Case wcoWP_CNAuto.ID = wcoCoverage.LevelID 'Policy Level 
                Update_CNAutoAdditionalCoverages(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedAdditionalCoveragesIDs, swcoCoverageCode, False)
              Case p_dictdatVehicles.ContainsKey(wcoCoverage.LevelID) 'Vehicle Level (Will be in Dictionary)
                Select Case True
                  Case swcoCoverageCode = "VFTP"
                    Dim datVehicle As DILCCA.Vehicle = p_dictdatVehicles(wcoCoverage.LevelID)
                    Dim decPreValue As Decimal = GetCoveragePremium(wcoCompany, wcoCoverage.ID)
                    If decPreValue <> Decimal.Zero Then datVehicle.TotalPremiumPrincipal = decPreValue.ToASCurrency
                  Case lstCodesSurcharges.Contains(swcoCoverageCode)
                    Update_CNAutoSurcharges(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedSurchargesIds, swcoCoverageCode)
                  Case lstCodesDiscounts.Contains(swcoCoverageCode)
                    Update_CNAutoDiscounts(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedDiscountsIds, swcoCoverageCode)
                  Case dictVehicleLimitCodeandIds.ContainsValue(swcoCoverageCode)
                    Update_CNAutoVehicleLimits(datApplicationDetail, wcoCoverage, wcoCompany, dictVehicleLimitCodeandIds, lstUsedVehicleLimitsIds, swcoCoverageCode)
                  Case lstCodesPolicyChangeForms.Contains(swcoCoverageCode)
                    Update_CNAutoPolicyChangeForm(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedPolicyFormsIds, sIssusingstate, swcoCoverageCode)
                  Case Else
                    Update_CNAutoAdditionalCoverages(datApplicationDetail, wcoCoverage, wcoCompany, lstUsedAdditionalCoveragesIDs, swcoCoverageCode, True)
                End Select
            End Select

This code basically sits in a for loop, and it first determines if the data belongs to a Policy or a Vehicle, If it's a policy there is only one place it can go, if it's a Vehicle then I determine what the code is and put it in the correct spot.

What I was wondering, would I have been better to do a:
A) IF Statment, Then use a Case in the else part
B) Used two if statements
C) Should just stuck with the orignal code?
D) It doesn't matter?

Are using Select Case True good coding? I've read they are but I've also read that they are not, I understand it's everone personally choice..
The goal is just to make it the most efficent, so I was just curious if I handled it correctly.

Thanks