/// <summary> /// Adds the line item directly to the current <see cref="Sale"/>. /// </summary> /// <param name="lineItem"></param> public void AddLineItem(SalesLineItem lineItem) { if (lineItem != null) { LineItems.Add(lineItem); } }
/// <summary> /// <para>Creates a new line item for the given product if one does not already exit and adds it to the current <see cref="Sale"/>.</para> /// <para>Otherwise, the existing line item's quantity is updated.</para> /// </summary> /// <param name="product"></param> /// <param name="quantity"></param> public void MakeLineItem(Product product, int quantity) { if (product == null) { return; } var lineItem = new SalesLineItem(product, quantity); var existingLineItem = LineItems.SingleOrDefault(i => i.Equals(lineItem)); if (existingLineItem == null) { LineItems.Add(lineItem); } else { existingLineItem.AddQuantity(lineItem.Quantity); } }