/// <summary> /// Builds a <see cref="BasketLineItem"/> /// </summary> /// <param name="lineItem"> /// The line item. /// </param> /// <returns> /// The <see cref="BasketLineItem"/>. /// </returns> public BasketLineItem Build(ILineItem lineItem) { var contentId = lineItem.ExtendedData.ContainsKey("umbracoContentId") ? int.Parse(lineItem.ExtendedData["umbracoContentId"]) : 0; var basketLineItem = new BasketLineItem { Key = lineItem.Key, ContentId = contentId, Name = lineItem.Name, Sku = lineItem.Sku, UnitPrice = lineItem.Price, TotalPrice = lineItem.TotalPrice, Quantity = lineItem.Quantity, Product = contentId > 0 ? new ProductModel(this._umbraco.TypedContent(contentId)) { CurrentCustomer = this._currentCustomer, Currency = this._currency } : null }; return(basketLineItem); }
public void AddItemToBasket(BasketItem basketItem) { if (basketItem != null) { var basket = GetCurrentBasket(); BasketLineItem existingLineItem = GetLineItemBySku(basketItem.ProductSku); if (existingLineItem == null) { AddLineItemToBasket(basket, new BasketLineItem() { Quantity = 1, ProductSku = basketItem.ProductSku, LineItemPrice = basketItem.ItemPrice, LineItemDiscount = basketItem.ItemDisount, IsGiftVoucherItem = basketItem.IsGiftVoucherItem }); } else { existingLineItem.Quantity = existingLineItem.Quantity + 1; existingLineItem.LineItemPrice = existingLineItem.LineItemPrice + basketItem.ItemPrice; existingLineItem.LineItemDiscount = existingLineItem.LineItemDiscount + basketItem.ItemDisount; } UpdateBasket(basket); } }
public decimal LinePrice_NoOffer_EqualsUnitPriceTimesQuantity(decimal unitPrice, int quantity) { var stockItemMock = new Mock <IStockItem>(); stockItemMock.Setup(m => m.UnitPrice).Returns(unitPrice); var lineItem = new BasketLineItem(stockItemMock.Object) { Quantity = quantity }; return(lineItem.LinePrice); }
public decimal LinePrice_WithPromotion_PromotionDiscountApplied(decimal unitPrice, int quantity, decimal discountToApply) { var promotionMock = new Mock <IPromotion>(); promotionMock.Setup(m => m.CalculateDiscountToApply(It.IsAny <IStockItem>(), quantity)).Returns(discountToApply); var stockItemMock = new Mock <IStockItem>(); stockItemMock.Setup(m => m.UnitPrice).Returns(unitPrice); stockItemMock.Setup(m => m.Promotion).Returns(promotionMock.Object); var lineItem = new BasketLineItem(stockItemMock.Object) { Quantity = quantity }; return(lineItem.LinePrice); }
/// <summary> /// Builds a <see cref="BasketLineItem"/> /// </summary> /// <param name="lineItem"> /// The line item. /// </param> /// <returns> /// The <see cref="BasketLineItem"/>. /// </returns> public BasketLineItem Build(ILineItem lineItem) { var contentId = lineItem.ExtendedData.ContainsKey("umbracoContentId") ? int.Parse(lineItem.ExtendedData["umbracoContentId"]) : 0; var productKey = lineItem.ExtendedData.GetProductKey(); ProductModel product = null; if (!productKey.Equals(Guid.Empty)) { var productContent = _merchello.TypedProductContent(productKey); if (productContent != null) { product = new ProductModel(productContent) { CurrentCustomer = _currentCustomer, Currency = _currency } } ; } var basketLineItem = new BasketLineItem { Key = lineItem.Key, ContentId = contentId, Name = lineItem.Name, Sku = lineItem.Sku, UnitPrice = lineItem.Price, TotalPrice = lineItem.TotalPrice, Quantity = lineItem.Quantity, ExtendedData = lineItem.ExtendedData, Product = product ?? this.HandleLegacyBazaarProductContent(contentId) }; return(basketLineItem); }
private void AddLineItemToBasket(Models.ShoppingBasket basket, BasketLineItem basketItem) { basket.LineItems.Add(basketItem); }
/// <summary> /// The format total price. /// </summary> /// <param name="lineItem"> /// The line item. /// </param> /// <param name="currency"> /// The currency. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> public static string FormatTotalPrice(this BasketLineItem lineItem, ICurrency currency) { return(FormatPrice(lineItem.TotalPrice, currency)); }
/// <summary> /// The format total price. /// </summary> /// <param name="lineItem"> /// The line item. /// </param> /// <param name="currencySymbol"> /// The currency symbol. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> public static string FormatTotalPrice(this BasketLineItem lineItem, string currencySymbol) { return(FormatPrice(lineItem.TotalPrice, currencySymbol)); }