Lookup Options

The main configuration class for the lookup services. Contains resolver delegates for resolving images, names, and prices; feature flags; warranty settings; and storage options.

Property Summary
ServiceItemImageUrlResolver
Func<LookupOptionResolverModel<Dictionary<string,string>>, ValueTask<string?>>?
Resolver delegate that converts a multilingual image dictionary to a resolved image URL for service items.
BrandStandardWarrantyPeriodsInYears
Dictionary<long?, int>
A dictionary mapping brand IDs to their standard warranty period in years.
PaintThickneesImageUrlResolver
Func<LookupOptionResolverModel<string>,ValueTask<string?>>?
Resolver delegate that converts a paint thickness image path to a full URL.
PaintThicknessCertificateSerialNumberResolver
Func<LookupOptionResolverModel<string>, ValueTask<string?>>?
Resolver delegate that derives the Paint Thickness Certificate's serial number from the chosen
inspection's id. Must be deterministic — the same inspection should always produce the same
serial so re-printed certificates match. When unset, PaintThicknessCertificateModel.SerialNumber
is null.
PaintThicknessCertificateUrlsResolver
Func<LookupOptionResolverModel<string>, ValueTask<List<PaintThicknessCertificateUrlDTO>?>>?
Resolver delegate that generates the Paint Thickness Certificate's signed public URLs for a
VIN — one entry per print language the host supports (the host owns the certificate
templates, so it declares the supported set by what it returns here; list order is display
order). The same kind of links the printed certificate's QR carries. Invoked only when the
certificate is available and the request opted in via
VehicleLookupRequestOptions.GeneratePaintThicknessCertificateUrls. Receives the
VIN as the value and the request's language code. When unset,
VehicleLookupDTO.PaintThicknessCertificateUrls stays null.
AccessoryImageUrlResolver
Func<LookupOptionResolverModel<string>, ValueTask<string?>>?
Resolver delegate that converts an accessory image path to a full URL.
CompanyLogoImageResolver
Func<LookupOptionResolverModel<List<ShiftFileDTO>?>, ValueTask<List<ShiftFileDTO>?>>?
Resolver delegate that resolves company logo images.
PartLocationNameResolver
Func<LookupOptionResolverModel<PartLocationNameResolverModel>, ValueTask<string?>>?
Resolver delegate that resolves a part location identifier to a human-readable name.
CountryNameResolver
Func<LookupOptionResolverModel<long?>, ValueTask<string?>>?
Resolver delegate that resolves a country ID to its name.
BrandNameResolver
Func<LookupOptionResolverModel<long?>, ValueTask<string?>>?
Resolver delegate that resolves a brand ID to its name. Used by the diagnostic trace renderer; not required for normal lookups.
RegionNameResolver
Func<LookupOptionResolverModel<long?>, ValueTask<string?>>?
Resolver delegate that resolves a region ID to its name.
CityNameResolver
Func<LookupOptionResolverModel<long?>, ValueTask<string?>>?
Resolver delegate that resolves a city ID to its name.
CityFromBranchIDResolver
Func<LookupOptionResolverModel<long?>, ValueTask<long?>>?
Resolver delegate that resolves a company branch ID to the city ID the branch belongs to.
CompanyNameResolver
Func<LookupOptionResolverModel<long?>, ValueTask<string?>>?
Resolver delegate that resolves a company ID to its name.
CompanyBranchNameResolver
Func<LookupOptionResolverModel<long?>, ValueTask<string?>>?
Resolver delegate that resolves a company branch ID to its name.
CompanyLogoResolver
Func<LookupOptionResolverModel<long?>, ValueTask<string?>>?
Resolver delegate that resolves a company ID to its logo URL.
PartLookupPriceResolver
Func<LookupOptionResolverModel<PartLookupPriceResoulverModel>, ValueTask<(decimal? distributorPurchasePrice, IEnumerable<PartPriceDTO> prices)>>?
Resolver delegate that processes and returns part pricing (distributor purchase price and per-region prices).
PartLookupStocksResolver
Func<LookupOptionResolverModel<IEnumerable<StockPartDTO>>, ValueTask<IEnumerable<StockPartDTO>>>?
Resolver delegate that processes and returns part stock availability data.
IncludeInactivatedFreeServiceItems
bool
Whether to include free service items that have not yet been activated (e.g., awaiting warranty activation).
WarrantyStartDateDefaultsToInvoiceDate
bool
Whether the warranty start date should default to the invoice date when no explicit activation date is set. Defaults to true.
DistributorCompanyID
long?
The Identity CompanyID of the distributor company. A VIN can have multiple VehicleEntries
one for the distributor and one (or more) for the selling dealer(s) — and the dealer's sale invoice date
is later than the distributor's. Distributor-scoped logic such as the Paint Thickness Certificate anchors
on the distributor's invoice date, so it selects the entry whose CompanyID equals this value.
for the Paint Thickness Certificate: if this is unset, or the VIN has no invoiced entry for
this company, no certificate is produced — it never falls back to a dealer's invoice.
SigningSecretKey
string
The HMAC secret key used for signing service item claim requests.
SignatureValidityDuration
TimeSpan
How long a generated claim signature remains valid.
TimeProvider
TimeProvider
Clock used when stamping SignatureExpiry. Defaults to TimeProvider.System; override with a fixed provider to produce deterministic signatures for sample/doc generation or tests.
VehicleInspectionPreClaimVoucherPrintingURLResolver
Func<LookupOptionResolverModel<(string VehicleInspectionID, string ServiceItemID)>, ValueTask<string?>>?
Resolver delegate that generates a pre-claim voucher printing URL for vehicle inspection-based claims.
ServiceActivationPreClaimVoucherPrintingURLResolver
Func<LookupOptionResolverModel<(string ServiceActivationID, string ServiceItemID)>, ValueTask<string?>>?
Resolver delegate that generates a pre-claim voucher printing URL for service activation-based claims.
StandardItemClaimWarnings
List<VehicleItemWarning>
Standard warning messages displayed to users before claiming any service item.
SkippedItemsClaimWarningResolver
Func<LookupOptionResolverModel<(VehicleServiceItemDTO ItemBeingClaimed, List<VehicleServiceItemDTO> SkippedItems)>, ValueTask<VehicleItemWarning?>>?
Resolver delegate that builds the warning shown when claiming a free sequential item would cancel lower-mileage pending items (e.g. claiming the 50K service while the 45K is still pending). Receives the item being claimed and the pending items that claiming it would cancel (the pre-claim mirror of dynamic cancellation). Return null to suppress the warning. When not configured, no skipped-items warning is attached.
UnInvoicedBrokerClaimWarningResolver
Func<LookupOptionResolverModel<VehicleBrokerSaleInformation>, ValueTask<VehicleItemWarning?>>?
Resolver delegate that builds the warning shown when claiming items on a vehicle that is held by a broker (TBP) that has not invoiced it yet. Receives the broker sale information. Return null to suppress the warning. When not configured, no broker warning is attached.
DistributorStockPartLookupQuantityThreshold
int?
The minimum stock quantity threshold for distributor stock lookup. Quantities below this are reported as QuantityNotWithinLookupThreshold.
ShowPartLookupStockQauntity
bool
Whether to show the actual stock quantity in part lookup results (vs. just availability status). Defaults to false.
EnableManufacturerLookup
bool
Whether the manufacturer part lookup feature is enabled.
CatalogPartShouldComeFromStock
bool
Whether catalog part data should only come from stock records (vs. the dedicated catalog).
LookupBrokerStock
bool
Whether to look up broker stock data for vehicles.
VehicleLookupStorageSource
StorageSources
The storage backend to use for vehicle lookups (CosmosDB or DuckDB).