private static Result <PurchaseOrder> CreatePurchaseOrder( WineMsPurchaseOrderTransactionDocument salesOrderTransactionDocument) => ExceptionWrapper .Wrap( () => Result.Ok( new PurchaseOrder { Supplier = new Supplier(salesOrderTransactionDocument.SupplierAccountCode), DeliveryDate = salesOrderTransactionDocument.TransactionDate, DueDate = salesOrderTransactionDocument.TransactionDate, OrderDate = salesOrderTransactionDocument.TransactionDate, OrderNo = salesOrderTransactionDocument.DocumentNumber, TaxMode = TaxMode.Exclusive }));
public static Result <WineMsPurchaseOrderTransactionDocument> ProcessTransaction( WineMsPurchaseOrderTransactionDocument wineMsSalesOrderTransactionDocument) => CreatePurchaseOrder(wineMsSalesOrderTransactionDocument) .OnSuccess( order => order.AddPurchaseOrderLines(wineMsSalesOrderTransactionDocument)) .OnSuccess( order => ExceptionWrapper .Wrap( () => { order.Save(); wineMsSalesOrderTransactionDocument.IntegrationDocumentNumber = order.OrderNo; return(Result.Ok(wineMsSalesOrderTransactionDocument)); }));