public BasketViewModel(Basket basket)
        {
            if (basket == null)
            {
                throw new ArgumentNullException("basket");
            }

            this.basket = basket;
        }
Example #2
0
        public BasketView(Basket basket)
        {
            if (basket == null)
            {
                throw new ArgumentNullException("basket");
            }        

            this.owner = basket.Owner.Identity.Name;
            this.lastUpdated = basket.Updated;
            this.total = (from e in basket.Contents
                          select e.Total.Amount).Sum();
        }
        public override Basket Apply(Basket basket)
        {
            var policy = new DefaultCustomerDiscountPolicy();

            var evaluatedBasket = new Basket(basket.Owner);
            foreach (var extent in basket.Contents)
            {
                var evaluatedProduct = policy.Apply(extent.Product, basket.Owner);
                evaluatedBasket.Contents.Add(extent.WithItem(evaluatedProduct));
            }

            return evaluatedBasket;
        }
        public override Basket Apply(Basket basket)
        {
            var discounts = this.repository.GetDiscountedProducts().ToList();

            var evaluatedBasket = new Basket(basket.Owner);
            foreach (var extent in basket.Contents)
            {
                var evaluatedProduct = (from d in discounts
                                        where d.Id == extent.Item.Id
                                        select d).DefaultIfEmpty(extent.Item).SingleOrDefault();
                evaluatedBasket.Contents.Add(extent.WithItem(evaluatedProduct));
            }

            return evaluatedBasket;
        }
Example #5
0
        public Basket ConvertTo(Currency currency)
        {
            if (currency == null)
            {
                throw new ArgumentNullException("currency");
            }

            var convertedBasket = new Basket(this.Owner);

            foreach (var extent in this.Contents)
            {
                convertedBasket.Contents.Add(extent.ConvertTo(currency));
            }

            return convertedBasket;
        }
        public Basket GetBasketFor(IPrincipal user)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            var b = new Basket(user);

            var basketLines = this.repository.GetBasketFor(user);
            foreach (var line in basketLines)
            {
                var basketItem = new Extent(line.Product);
                basketItem.Quantity = line.Quantity;
                b.Contents.Add(basketItem);
            }

            var discountedBasket = this.discountPolicy.Apply(b);
            return discountedBasket;
        }
Example #7
0
 public void UpdatedForEmptyBasketIsCorrect(Basket sut)
 {
     // Fixture setup
     // Exercise system
     var result = sut.Updated;
     // Verify outcome
     Assert.Equal(DateTimeOffset.MinValue, result);
     // Teardown
 }
 public abstract Basket Apply(Basket basket);