public virtual MiniBasketRefreshViewModel Refresh() { var viewModel = new MiniBasketRefreshViewModel { IsEmpty = true }; if (!_transactionLibraryInternal.HasBasket()) { return(viewModel); } var purchaseOrder = _transactionLibraryInternal.GetBasket(false).PurchaseOrder; var quantity = purchaseOrder.OrderLines.Sum(x => x.Quantity); var total = purchaseOrder.OrderTotal.HasValue ? new Money(purchaseOrder.OrderTotal.Value, purchaseOrder.BillingCurrency) : new Money(0, purchaseOrder.BillingCurrency); viewModel.NumberOfItems = quantity.ToString(); viewModel.IsEmpty = quantity == 0; viewModel.Total = total.ToString(); return(viewModel); }
public ActionResult Rendering() { var miniBasketViewModel = new MiniBasketRenderingViewModel { IsEmpty = true, RefreshUrl = Url.Action("Refresh") }; if (!_transactionLibraryInternal.HasBasket()) { return(View("/Views/MiniBasket/Rendering.cshtml", miniBasketViewModel)); } var cart = GetCart(); var currency = new Currency() { ISOCode = cart.CurrencyCode }; miniBasketViewModel.NumberOfItems = (int)cart.Lines.Sum(x => x.Quantity); miniBasketViewModel.IsEmpty = miniBasketViewModel.NumberOfItems == 0; miniBasketViewModel.Total = cart.Total != null ? new Money(cart.Total.Amount, currency) : new Money(0, currency); return(View("/Views/MiniBasket/Rendering.cshtml", miniBasketViewModel)); }
public void Rendering_When_Basket_Is_Empty_Should_Return_View_With_Empty_Model() { //Arrange _transactionLibraryInternal.HasBasket().Returns(false); //Act var result = _controller.Rendering(); //Assert var viewResult = result as ViewResult; var model = viewResult != null ? viewResult.Model as MiniBasketRenderingViewModel : null; Assert.NotNull(viewResult); Assert.NotNull(model); Assert.True(model.IsEmpty); Assert.Equal(0, model.NumberOfItems); Assert.Null(model.Total); Assert.NotEmpty(model.RefreshUrl); }
public virtual ShippingPickerViewModel GetViewModel() { var shipmentPickerViewModel = new ShippingPickerViewModel(); var basket = _transactionLibraryInternal.GetBasket().PurchaseOrder; if (_transactionLibraryInternal.HasBasket()) { var shippingCountry = basket.GetAddress(UCommerce.Constants.DefaultShipmentAddressName).Country; shipmentPickerViewModel.ShippingCountry = shippingCountry.Name; var availableShippingMethods = _transactionLibraryInternal.GetShippingMethods(shippingCountry); if (basket.Shipments.Count > 0) { shipmentPickerViewModel.SelectedShippingMethodId = basket.Shipments.FirstOrDefault()?.ShippingMethod.ShippingMethodId ?? 0; } else { shipmentPickerViewModel.SelectedShippingMethodId = -1; } foreach (var availableShippingMethod in availableShippingMethods) { var priceGroup = SiteContext.Current.CatalogContext.CurrentPriceGroup; var price = availableShippingMethod.GetPriceForPriceGroup(priceGroup); var formattedprice = new Money((price == null ? 0 : price.Price), basket.BillingCurrency); shipmentPickerViewModel.AvailableShippingMethods.Add(new SelectListItem() { Selected = shipmentPickerViewModel.SelectedShippingMethodId == availableShippingMethod.ShippingMethodId, Text = String.Format(" {0} ({1})", availableShippingMethod.Name, formattedprice), Value = availableShippingMethod.ShippingMethodId.ToString() }); } } _transactionLibraryInternal.ExecuteBasketPipeline(); shipmentPickerViewModel.NextStepUrl = GetNextStepUrl(nextStepId); shipmentPickerViewModel.PreviousStepUrl = GetPreviousStepUrl(previousStepId); return(shipmentPickerViewModel); }
public virtual CartRenderingViewModel GetViewModel(string refreshUrl, string removeOrderLineUrl) { var basketVM = new CartRenderingViewModel(); if (!_transactionLibraryInternal.HasBasket()) { return(basketVM); } PurchaseOrder basket = _transactionLibraryInternal.GetBasket(false).PurchaseOrder; foreach (var orderLine in basket.OrderLines) { var orderLineViewModel = new OrderlineViewModel { Quantity = orderLine.Quantity, ProductName = orderLine.ProductName, Sku = orderLine.Sku, VariantSku = orderLine.VariantSku, Total = new Money(orderLine.Total.GetValueOrDefault(), basket.BillingCurrency).ToString(), Discount = orderLine.Discount, Tax = new Money(orderLine.VAT, basket.BillingCurrency).ToString(), Price = new Money(orderLine.Price, basket.BillingCurrency).ToString(), ProductUrl = GetProductUrl(CatalogLibrary.GetProduct(orderLine.Sku), this.productDetailsPageId), PriceWithDiscount = new Money(orderLine.Price - orderLine.UnitDiscount.GetValueOrDefault(), basket.BillingCurrency).ToString(), OrderLineId = orderLine.OrderLineId }; basketVM.OrderLines.Add(orderLineViewModel); } basketVM.OrderTotal = new Money(basket.OrderTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketVM.DiscountTotal = new Money(basket.DiscountTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketVM.TaxTotal = new Money(basket.TaxTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketVM.SubTotal = new Money(basket.SubTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketVM.NextStepUrl = GetNextStepUrl(nextStepId); basketVM.RefreshUrl = refreshUrl; basketVM.RemoveOrderlineUrl = removeOrderLineUrl; return(basketVM); }
public ActionResult Rendering() { var miniBasketViewModel = new MiniBasketRenderingViewModel { IsEmpty = true, RefreshUrl = Url.Action("Refresh") }; if (!_transactionLibraryInternal.HasBasket()) { return(View(miniBasketViewModel)); } var purchaseOrder = _transactionLibraryInternal.GetBasket(false).PurchaseOrder; miniBasketViewModel.NumberOfItems = purchaseOrder.OrderLines.Sum(x => x.Quantity); miniBasketViewModel.IsEmpty = miniBasketViewModel.NumberOfItems == 0; miniBasketViewModel.Total = purchaseOrder.OrderTotal.HasValue ? new Money(purchaseOrder.OrderTotal.Value, purchaseOrder.BillingCurrency) : new Money(0, purchaseOrder.BillingCurrency); return(View(miniBasketViewModel)); }
public ActionResult Rendering() { var basketModel = new BasketRenderingViewModel(); if (!_transactionLibraryInternal.HasBasket()) { return(View(basketModel)); } PurchaseOrder basket = _transactionLibraryInternal.GetBasket(false).PurchaseOrder; foreach (var orderLine in basket.OrderLines) { var orderLineViewModel = new BasketRenderingViewModel.OrderlineViewModel(); orderLineViewModel.Quantity = orderLine.Quantity; orderLineViewModel.ProductName = orderLine.ProductName; orderLineViewModel.Sku = orderLine.Sku; orderLineViewModel.VariantSku = orderLine.VariantSku; orderLineViewModel.Total = new Money(orderLine.Total.GetValueOrDefault(), basket.BillingCurrency).ToString(); orderLineViewModel.Discount = orderLine.Discount; orderLineViewModel.Tax = new Money(orderLine.VAT, basket.BillingCurrency).ToString(); orderLineViewModel.Price = new Money(orderLine.Price, basket.BillingCurrency).ToString(); orderLineViewModel.ProductUrl = CatalogLibrary.GetNiceUrlForProduct(CatalogLibrary.GetProduct(orderLine.Sku)); orderLineViewModel.PriceWithDiscount = new Money(orderLine.Price - orderLine.UnitDiscount.GetValueOrDefault(), basket.BillingCurrency).ToString(); orderLineViewModel.OrderLineId = orderLine.OrderLineId; basketModel.OrderLines.Add(orderLineViewModel); } basketModel.OrderTotal = new Money(basket.OrderTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.DiscountTotal = new Money(basket.DiscountTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.TaxTotal = new Money(basket.TaxTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.SubTotal = new Money(basket.SubTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); basketModel.RefreshUrl = Url.Action("UpdateBasket"); basketModel.RemoveOrderlineUrl = Url.Action("RemoveOrderline"); return(View(basketModel)); }
public ActionResult Index() { var miniBasketModel = ResolveModel(); string message; var parameters = new System.Collections.Generic.Dictionary <string, object>(); if (!miniBasketModel.CanProcessRequest(parameters, out message)) { return(this.PartialView("_Warning", message)); } var miniBasketRenderingViewModel = miniBasketModel.CreateViewModel(Url.Action("Refresh")); var detailTemplateName = this.detailTemplateNamePrefix + this.TemplateName; if (!_transactionLibraryInternal.HasBasket()) { return(View(detailTemplateName, miniBasketRenderingViewModel)); } return(View(detailTemplateName, miniBasketRenderingViewModel)); }