BD.PricingContext.Core 2026.9.4.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) and PriceSheetDetail (one product's price on one sheet), both PersistableEntity (_id + computed FriendlyID), their validation and their ToDictionary/FromDictionary mapping to the B3.CRUD row shape; IPriceAuditable (the shared audit stamps); PriceResolutionOutcome — the closed set Priced / SheetInactive / NotOnSheet / NoSheetAssigned that replaces a silent $0. Also PriceChangeSweepWatermark, 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 on PriceSheet and a customer id is passed in (DECISIONS §10).
  • Formulas/ — PriceSheetFormulaEvaluator (W/H/x binding, RoundUpToNextEven/MRound), FormulaEvaluationOutcome, and MathFormulaFunctions.SimplifyMathFormulaText for display text.
  • Notifications/ — the published notification shapes and IPricingNotificationPublication. The type names are the wire contract; the schema is additive-only.
  • Configuration/PricingConfiguration — the host-supplied ViewRole / EditRole names, fail-closed by default.
  • Exceptions/ — the domain exception vocabulary the Block Host maps to HTTP status codes, rooted at PricingException.
  • 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

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