public void ChargeCustomer(CustomerId customerId, IList <Product> products) { var customer = customerRepository.GetCustomer(customerId); var invoice = purchaseRepository.CreateInvoice(customer, products); mailService.SendInvoice(customer, invoice); }
public Invoice MakePurchase(Customer customer, Product product, Discount discount) { var purchase = purchaseRepository.CreatePurchase(customer); purchaseRepository.AddProduct(purchase, product); var invoice = purchaseRepository.CreateInvoice(purchase); if (discount != null) { invoice.ApplyDiscount(discount); } return(invoice); }