Api
IProductApi Contract
[<Interface>]
type IProductApi =
abstract member GetProducts: (Provider -> Async<Product list>)
abstract member GetProduct: (SKU -> Async<Product option>)
abstract member AddProduct: (Product * Currency -> Async<Result<unit, Error>>)
abstract member SaveProduct: (Product -> Async<Result<unit, Error>>)
abstract member GetPrices: (SKU -> Async<Prices option>)
abstract member SavePrices: (Prices -> Async<Result<unit, Error>>)
abstract member MarkAsSoldOut: (SKU -> Async<Result<unit, Error>>)
abstract member RemoveListPrice: (SKU -> Async<Result<unit, Error>>)
abstract member AdjustStock: (Stock -> Async<Result<unit, Error>>)
abstract member DetermineStock: (SKU -> Async<Result<Stock, Error>>)
abstract member GetPurchasePrices: (SKU -> Async<PurchasePrices>)
abstract member GetSales: (SKU -> Async<Sale list option>)Api Implementation
Instruction Wiring with Undo Support
Running Workflows
Undo strategy: CanUndo type
CanUndo typeProduct domain example (from Shopfoo.Product)
Shopfoo.Product)Order domain example with custom undo predicate (from Shopfoo.Program.Tests)
Shopfoo.Program.Tests)Interface Implementation
Entity
Feature
Type
Implementation
Dependency Injection
Program level — AddProgram()
AddProgram()Domain level — Add{Domain}Api()
Add{Domain}Api()Composition root — AddRemotingApi()
AddRemotingApi()Last updated