Ejemplo n.º 1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public CheckoutManager()
        {
            _order = new OrderHeader()
            {
                OrderLines = new List <OrderLine>()
            };

            _kataItemsDatabaseAccess = DatabaseFactory.GetKataItemsDatabaseAccess(Enums.KataItemsDatabaseAccessType.MockData);
        }
        /// <summary>
        /// Returns an implementation of the IOrderLinePriceCalculator interface.
        /// </summary>
        /// <param name="priceCalculationType">The type of IOrderLinePriceCalculator to return (WithoutDiscount or WithDiscount)</param>
        /// <returns>An implementation of the IOrderLinePriceCalculator interface.</returns>
        internal static IOrderLinePriceCalculator GetOrderLinePriceCalculator(PriceCalculationType priceCalculationType)
        {
            IKataItemsDatabaseAccess kataItemsDatabaseAccess = DatabaseFactory.GetKataItemsDatabaseAccess(KataItemsDatabaseAccessType.MockData);

            switch (priceCalculationType)
            {
            case PriceCalculationType.WithoutDiscount:
                return(new OrderLinePriceCalculatorWithoutDiscount(kataItemsDatabaseAccess));

            case PriceCalculationType.WithDiscount:
                return(new OrderLinePriceCalculatorWithDiscount(kataItemsDatabaseAccess));

            default:
                throw new Exception("Invalid PriceCalculationType enum provided to SortedCheckoutKata.HelperLibraries.HelperLibrariesFactory.GetOrderLinePriceCalculator method.");
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="kataItemsDatabaseAccess">An implementation of the IKataItemsDatabaseAccess interface; used to access the KataItems database.</param>
 public OrderLinePriceCalculatorWithoutDiscount(IKataItemsDatabaseAccess kataItemsDatabaseAccess)
 {
     _kataItemsDatabaseAccess = kataItemsDatabaseAccess;
 }