/// <summary> /// Method used to create total price for the products. /// </summary> /// <param name="products">The cart items.</param> /// <returns>Returns total price.</returns> public int CalculateTotalPrice(List <char> products) { try { if (cartEngine != null) { //// Step 1 : Apply promotions for orders if (promotionEngine != null) { int promotionTotalPrice = promotionEngine.ApplyPromotion(products); //// Calculate billing for the non promoted items. int cartProductTotalPrice = cartEngine.Calculate(promotionEngine.GetNonPromotedItems(products)); return(promotionTotalPrice + cartProductTotalPrice); } //// step 2 : Calculate non promotion type if it is exists else calculate complete orders return(cartEngine.Calculate(products)); } } catch (Exception ex) { Console.WriteLine(ex.Message); } return(0); }