Ejemplo n.º 1
0
 public void PriceItem(OrderLineItem lineItem, int quantity)
 {
     lineItem.Product    = Name;
     lineItem.Quantity   = quantity;
     lineItem.ListPrice  = (decimal)Price;
     lineItem.OrderPrice = lineItem.ListPrice;
 }
Ejemplo n.º 2
0
        private OrderLineItem Price(string productName, int quantity, DateTime orderDate)
        {
            OrderLineItem item         = new OrderLineItem();
            CatalogItem   currentPrice = null;

            //CatalogItem currentPricing = this.Select(x => x.Name == productName && orderDate >= x.Effective.From && orderDate <= x.Effective.To).First();
            //var pricingItem = this.Select(x => x.Name == productName && orderDate >= x.Effective.From && x.Effective.To == null || orderDate <= x.Effective.To)).First();

            foreach (CatalogItem pricingItem in this)
            {
                if (productName == pricingItem.Name &&
                    orderDate >= pricingItem.Effective.From &&
                    pricingItem.Effective.To == null || orderDate <= pricingItem.Effective.To)
                {
                    currentPrice = pricingItem;
                    break;
                }
            }

            if (currentPrice == null || currentPrice.Price == null)
            {
                throw new KeyNotFoundException(string.Format("Product \"{0}\" is missing pricing information for {1}", productName, orderDate.ToShortDateString()));
            }

            currentPrice.PriceItem(item, quantity);

            /*
             * item = new OrderLineItem()
             * {
             *  Product = currentPrice.Name
             *  , Quantity = quantity
             *  , ListPrice = (decimal)currentPrice.Price
             *  , OrderPrice = Convert.ToDecimal(quantity) * (decimal)currentPrice.Price
             * };
             */


            return(item);
        }