BD.PricingContext.Core 2026.9.2.1
BD.PricingContext.Core
The Pricing Block's domain contract. POCO-only apart from the formula engine — no B3.CRUD and no B3.Messaging
dependency — so a Blick, a consumer's adapter, or a notification subscriber can consume it without pulling in the
store implementation. See ../_docs/ARCHITECTURE.md.
What's here
Model/—PriceSheet(the sheet header) andPriceSheetDetail(one product's price on one sheet), bothPersistableEntity(_id+ computedFriendlyID), their validation and theirToDictionary/FromDictionarymapping to the B3.CRUD row shape;IPriceAuditable(the shared audit stamps);PriceResolutionOutcome— the closed setPriced/SheetInactive/NotOnSheet/NoSheetAssignedthat replaces a silent $0. AlsoPriceChangeSweepWatermark, the single bookkeeping row recording how far the Block Host's price-change sweep has swept (DECISIONS §7) — not a domain aggregate, and deliberately carrying no audit attribution.Contracts/— the read/write entry points (IPriceSheetQueries/IPriceSheetCommands,IPriceSheetDetailQueries/IPriceSheetDetailCommands,IPriceSheetAssignmentQueries/…Commands,IPriceSheetResolutionQueries). Declared here rather than in DataAccess so the Blick can depend on the contracts and have implementations injected. There is no customer seam: the assignment is a column onPriceSheetand a customer id is passed in (DECISIONS §10).Formulas/—PriceSheetFormulaEvaluator(W/H/x binding,RoundUpToNextEven/MRound),FormulaEvaluationOutcome, andMathFormulaFunctions.SimplifyMathFormulaTextfor display text.Notifications/— the published notification shapes andIPricingNotificationPublication. The type names are the wire contract; the schema is additive-only.Configuration/PricingConfiguration— the host-suppliedViewRole/EditRolenames, fail-closed by default.Exceptions/— the domain exception vocabulary the Block Host maps to HTTP status codes, rooted atPricingException.ApplicationConstants— the three DataList names the Block owns.
What it deliberately excludes
No store access, no HTTP, no message transport, and no customer or product master — this package describes the
price sheet and nothing about where it lives or who reads it. The B3.CRUD-backed implementations of the contracts
above live in BD.PricingContext.DataAccess, which a host wires up via DI.
Publishing
Published to nuget.bdcsoft.com by ../azure-pipelines-Core.yml (trigger:
master), which mints the date-based version from the pipeline's build number. Never hand-packed — the csproj
<Version> is a local-build marker only (BD-BLOCK-SOP §8.3).
No packages depend on BD.PricingContext.Core.
.NET 10.0
- B3.Data.Core (>= 0.1.15036)
| Version | Downloads | Last updated |
|---|---|---|
| 2026.10.7.3 | 32 | 10/7/2026 |
| 2026.10.7.2 | 1 | 10/7/2026 |
| 2026.10.7.1 | 4 | 10/7/2026 |
| 2026.9.19.1 | 76 | 9/20/2026 |
| 2026.9.18.3 | 3 | 9/19/2026 |
| 2026.9.18.1 | 78 | 9/19/2026 |
| 2026.9.10.1 | 4 | 9/10/2026 |
| 2026.9.5.1 | 5 | 9/5/2026 |
| 2026.9.4.1 | 3 | 9/4/2026 |
| 2026.9.2.1 | 3 | 9/2/2026 |
| 2026.9.1.1 | 3 | 9/2/2026 |
| 2026.8.29.2 | 4 | 8/29/2026 |
| 2026.8.29.1 | 1 | 8/29/2026 |
| 2026.8.22.1 | 4 | 8/22/2026 |
| 2026.8.19.2 | 4 | 8/19/2026 |
| 2026.8.19.1 | 4 | 8/19/2026 |
| 2026.8.12.1 | 213 | 8/12/2026 |