decimal ProductPriceCalc(Product product)
        {
            using (StructureMap.IContainer c = NestedContainer)
            {
                //TODO: find out how tier is resolved
                ProductPricingTier tier = Using<IProductPricingTierRepository>(c).GetAll().First();
                decimal prodprice = 0;
                if (product is ConsolidatedProduct)
                    try
                    {
                        prodprice = ((ConsolidatedProduct)product).TotalExFactoryValue(tier);
                    }
                    catch
                    {
                        prodprice = 0m;
                    }
                else
                    try
                    {
                        prodprice = product.TotalExFactoryValue(tier);
                      
                    }
                    catch
                    {
                        prodprice = 0m;
                    }


                return prodprice;
            }
        }
        decimal PriceCalc(Product product)
        {
            using (var container = NestedContainer)
            {
               
                var _productPricingService = Using<IProductPricingRepository>(container);
               
                decimal UnitPrice = 0m;
                ProductPricingTier tier = _productPricingService.GetAll().FirstOrDefault().Tier;

                if (product is ConsolidatedProduct)
                    try
                    {
                        UnitPrice = ((ConsolidatedProduct) product).TotalExFactoryValue(tier);
                    }
                    catch
                    {
                        UnitPrice = 0m;
                    }
                else
                    try
                    {
                        UnitPrice = product.TotalExFactoryValue(tier);
                    }
                    catch
                    {
                        UnitPrice = 0m;
                    }
                return UnitPrice;
            }
        }