public async Task <CheckoutPageDeliveryTotals> GetDeliveryAndTotals() { var deliveryAddress = shoppingCart.GetCurrentCartShippingAddress(); var isShippingApplicable = shoppingCart.GetShoppingCartItems() .Any(item => !item.IsMailingList); if (!isShippingApplicable) { UnsetShipping(); } var result = new CheckoutPageDeliveryTotals() { DeliveryMethods = GetDeliveryMethods(isShippingApplicable), Totals = new Totals() { Title = string.Empty, Description = null // resources.GetResourceString("Kadena.Checkout.Totals.Description"), if needed } }; if (permissions.UserCanSeePrices()) { await UpdateTotals(result, deliveryAddress); } else { result.DeliveryMethods?.HidePrices(); } return(result); }
private async Task UpdateTotals(CheckoutPageDeliveryTotals page, DeliveryAddress deliveryAddress) { var totals = page.Totals; totals.Title = resources.GetResourceString("Kadena.Checkout.Totals.Title"); var shoppingCartTotals = shoppingCart.GetShoppingCartTotals(); shoppingCartTotals.TotalTax = await taxCalculator.EstimateTotalTax(deliveryAddress); totals.Items = new Total[] { new Total() { Title = resources.GetResourceString("Kadena.Checkout.Totals.Summary"), Value = String.Format("$ {0:#,0.00}", shoppingCartTotals.TotalItemsPrice) }, new Total() { Title = resources.GetResourceString("Kadena.Checkout.Totals.Shipping"), Value = String.Format("$ {0:#,0.00}", shoppingCartTotals.TotalShipping) }, new Total() { Title = resources.GetResourceString("Kadena.Checkout.Totals.Subtotal"), Value = String.Format("$ {0:#,0.00}", shoppingCartTotals.Subtotal) }, new Total() { Title = resources.GetResourceString("Kadena.Checkout.Totals.Tax"), Value = String.Format("$ {0:#,0.00}", shoppingCartTotals.TotalTax) }, new Total() { Title = resources.GetResourceString("Kadena.Checkout.Totals.Totals"), Value = String.Format("$ {0:#,0.00}", shoppingCartTotals.TotalPrice) } }.ToList(); }