Exemplo n.º 1
0
        public List <Models.SpecialPrice> GetProductPrices(Models.Product product)
        {
            List <Models.SpecialPrice> result = new List <Models.SpecialPrice>();

            Models.SpecialPrice defaultPrice = new Models.SpecialPrice();
            bool priceCalculated             = false;

            if (product != null)
            {
                // setup a default incase anything goes wrong
                defaultPrice.Minimum    = 1;
                defaultPrice.Maximum    = int.MaxValue;
                defaultPrice.SalesPrice = product.SalesPrice;

                PriceCalculator pc = new PriceCalculator();

                try
                {
                    result.Add(new Models.SpecialPrice()
                    {
                        Minimum = 1, Maximum = 4, SalesPrice = pc.CalcProductPrices(product.SalesPrice, product.CostPrice, 1, 4)
                    });
                    result.Add(new Models.SpecialPrice()
                    {
                        Minimum = 5, Maximum = 10, SalesPrice = pc.CalcProductPrices(product.SalesPrice, product.CostPrice, 5, 10)
                    });
                    result.Add(new Models.SpecialPrice()
                    {
                        Minimum = 11, Maximum = 20, SalesPrice = pc.CalcProductPrices(product.SalesPrice, product.CostPrice, 11, 20)
                    });
                    result.Add(new Models.SpecialPrice()
                    {
                        Minimum = 21, Maximum = int.MaxValue, SalesPrice = pc.CalcProductPrices(product.SalesPrice, product.CostPrice, 20, int.MaxValue)
                    });

                    priceCalculated = true;
                }
                catch (Exception ex)
                {
                    // log some error details
                }

                if (!priceCalculated)
                {
                    result.Clear();
                    result.Add(defaultPrice);
                }
            }

            return(result);
        }