public decimal TotalOrder(IEnumerable<Product> products, Customer customer) { decimal orderTotal = products.Sum(product => product.Price); customer.Balance += orderTotal; return orderTotal; }
/// <summary> /// Cần phải kiểm tra các dữ liệu đầu vào và đầu ra để đảm bảo luôn làm việc với dữ liệu có thể sử dụng được /// Nếu không như vậy thì exception hoặc lỗi cần được return và được xử lý. /// Đảm bảo code robust và tránh các lỗi tiềm ẩn /// </summary> /// <param name="products"></param> /// <param name="customer"></param> /// <returns></returns> public decimal TotalOrder(IEnumerable<Product> products, Customer customer) { if (customer == null) throw new ArgumentNullException("customer", "Customer cannot be null"); if (products.Count() == 0) throw new ArgumentException("Must have at least one product to total", "products"); decimal orderTotal = products.Sum(product => product.Price); customer.Balance += orderTotal; if (orderTotal == 0) throw new ArgumentOutOfRangeException("orderTotal", "Order Total should not be zero"); return orderTotal; }