Esempio n. 1
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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));
        }