public BasketViewModel(Basket basket) { if (basket == null) { throw new ArgumentNullException("basket"); } this.basket = basket; }
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; }
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; }
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);