public virtual CartItemViewModel CreateCartItemViewModel(ICart cart, ILineItem lineItem, EntryContentBase entry) { var viewModel = new CartItemViewModel { Code = lineItem.Code, DisplayName = entry.DisplayName, ImageUrl = entry.GetAssets <IContentImage>(_contentLoader, _urlResolver).FirstOrDefault() ?? "", DiscountedPrice = GetDiscountedPrice(cart, lineItem), PlacedPrice = new Money(lineItem.PlacedPrice, _currencyService.GetCurrentCurrency()), Quantity = lineItem.Quantity, Url = entry.GetUrl(_relationRepository, _urlResolver), Entry = entry, IsAvailable = _pricingService.GetCurrentPrice(entry.Code).HasValue, DiscountedUnitPrice = GetDiscountedUnitPrice(cart, lineItem), IsGift = lineItem.IsGift, Description = entry["Description"] != null ? entry["Description"].ToString() : "" }; var productLink = entry is VariationContent? entry.GetParentProducts(_relationRepository).FirstOrDefault() : entry.ContentLink; if (_contentLoader.TryGet(productLink, out GenericProduct product)) { viewModel.Brand = GetBrand(product); } var variant = entry as GenericVariant; if (variant != null) { viewModel.AvailableSizes = GetAvailableSizes(product, variant); } viewModel.Description = string.IsNullOrEmpty(viewModel.Description) ? viewModel.Description : product.Description.ToHtmlString(); return(viewModel); }
public virtual CartItemViewModel CreateCartItemViewModel(ICart cart, ILineItem lineItem, EntryContentBase entry) { var viewModel = new CartItemViewModel { Code = lineItem.Code, DisplayName = entry.DisplayName, ImageUrl = entry.GetAssets <IContentImage>(_contentLoader, _urlResolver).FirstOrDefault() ?? "", DiscountedPrice = GetDiscountedPrice(cart, lineItem), PlacedPrice = _pricingService.GetMoney(lineItem.PlacedPrice), Quantity = lineItem.Quantity, Url = entry.GetUrl(_relationRepository, _urlResolver), Entry = entry, IsAvailable = _pricingService.GetPrice(entry.Code) != null, DiscountedUnitPrice = GetDiscountedUnitPrice(cart, lineItem), IsGift = lineItem.IsGift }; var productLink = entry is VariationContent? entry.GetParentProducts(_relationRepository).FirstOrDefault() : entry.ContentLink; FashionProduct product; if (_contentLoader.TryGet(productLink, out product)) { viewModel.Brand = GetBrand(product); } var variant = entry as FashionVariant; if (variant != null) { viewModel.AvailableSizes = GetAvailableSizes(product, variant); } return(viewModel); }