Example #1
0
        public void FinalizeOrder()
        {
            // Business Conditions here...
            InvoiceStrategy.Generate(this);

            ShippingStrategy.ShipOrder(this);
        }
Example #2
0
        public void FinalizeOrder()
        {
            if (SelectedPayments.Any(x => x.PaymentProvider == PaymentProvider.Invoice) && AmountDue > 0 && ShippingStatus == ShippingStatus.WaitingForPayment)
            {
                InvoiceStrategy.Generate(this);
                ShippingStatus = ShippingStatus.ReadyForShippment;
            }
            else if (AmountDue > 0)
            {
                throw new Exception("Unable to finalize order");
            }

            ShippingStrategy.Ship(this);
        }