/// <summary> /// Prints a formatted list of the current contents of the cart. /// </summary> /// <param name="CurrentProductInventory">A reference to the orders available inventory.</param> public void DisplayCart(Inventory CurrentProductInventory) { if (!(UniqueRecords > 0)) { Console.WriteLine("There are currently no items in your cart."); } else { int qtySum = 0; int rowExtendedCost = 0; int grandTotalCost = 0; StringBuilder header = new StringBuilder(); StringBuilder cartLine = null; header.Append(String.Format("{0, -7} ", "Record#")); header.Append(String.Format("{0, -20} ", "Title")); header.Append(String.Format("{0, -12} ", "Unit Cost")); header.Append(String.Format("{0, -10} ", "Quantity")); header.Append(String.Format("{0, -12} ", "Ext. Cost")); Console.WriteLine("\n************************** CART SUMMARY *************************"); Console.WriteLine("-----------------------------------------------------------------"); Console.WriteLine(header); Console.WriteLine("------- -------------------- ------------ ---------- ------------ "); foreach (KeyValuePair<int, int> cartRow in _CartContents) { Product itemDetail = CurrentProductInventory.RetrieveProductById(cartRow.Key); rowExtendedCost = itemDetail.UnitPrice * cartRow.Value; qtySum += cartRow.Value; grandTotalCost += rowExtendedCost; cartLine = new StringBuilder(); cartLine.Append(String.Format("{0, -7} ", itemDetail.Id.ToString())); cartLine.Append(String.Format("{0, -20} ", itemDetail.Title.Trim())); cartLine.Append(String.Format("{0, -12} ", itemDetail.UnitPrice.ToString())); cartLine.Append(String.Format("{0, -10} ", cartRow.Value.ToString())); cartLine.Append(String.Format("{0, -12} ", rowExtendedCost.ToString())); Console.WriteLine(cartLine); } Console.WriteLine("\nTotal Units in the cart: {0}", qtySum); Console.WriteLine("Cart Total Cost: {0} Sickles\n", grandTotalCost); Console.WriteLine("-----------------------------------------------------------------"); } }
/// <summary> /// Gets the total cost of the current cart /// </summary> /// <param name="CurrentProductInventory">Requires a reference to the current inventory object for current product pricing.</param> /// <returns>The total sum of the cost of all te itemsin the cart.</returns> public int GetCartTotalCost(Inventory CurrentProductInventory) { int rowCost = 0, grandTotal = 0; foreach (KeyValuePair<int, int> cartRow in _CartContents) { Product itemDetail = CurrentProductInventory.RetrieveProductById(cartRow.Key); rowCost = itemDetail.UnitPrice * cartRow.Value; grandTotal += rowCost; } return grandTotal; }