public ActionResult ShippingMethods() { WebStoreConfigurationPart configuration = this._webStoreConfigurationServices.GetConfiguration(); WebStoreServices webStoreServices = new WebStoreServices(configuration); Basket basket = this._basketServices.GetBasket(); ShippingMethodsViewModel viewModel = new ShippingMethodsViewModel { AvailableShippingMethods = webStoreServices.CreateWebStoreChannel<IOrderService>().GetShippingMethods(new GetShippingMethodsParameters { BasketId = this._basketServices.GetBasketId().Value, CultureName = Thread.CurrentThread.CurrentUICulture.Name, MerchantId = configuration.MerchantId.Value, UserId = this._webstoreProfileServices.GetUser() }), Currency = basket.Currency, ShippingMethod = basket.OrderFormHeaders.First().LineItems.First().ShippingMethodId.ToString() }; webStoreServices.Dispose(); this.Response.Cache.SetCacheability(HttpCacheability.NoCache); return this.View("~/Modules/WebStore/Views/Order/ShippingMethods.cshtml", viewModel); }
public ActionResult ShippingMethods(ShippingMethodsViewModel viewModel) { WebStoreServices webStoreServices = new WebStoreServices(this._webStoreConfigurationServices.GetConfiguration()); if (this.ModelState.IsValid) { IOrderService orderServices = webStoreServices.CreateWebStoreChannel<IOrderService>(); orderServices.UpdateBasket( new UpdateBasketParameters { BasketId = this._basketServices.GetBasketId().Value, UserId = this._webstoreProfileServices.GetUser(), ShippingMethodId = Guid.Parse(viewModel.ShippingMethod), CultureName = Thread.CurrentThread.CurrentUICulture.Name, CountryId = this.BillingAddress.ShippingAddressIsDifferent ? this.ShippingAddress.Country : this.BillingAddress.Country } ); webStoreServices.Dispose(); Basket b = this._basketServices.GetBasket(); return this.View("~/Modules/WebStore/Views/Order/Pay.cshtml", new PayViewModel { Total = b.Total, ShippingCost = b.ShippingTotal, SubTotal = b.SubTotal, Currency = b.Currency }); } else { viewModel.AvailableShippingMethods = webStoreServices.CreateWebStoreChannel<IOrderService>().GetShippingMethods(new GetShippingMethodsParameters { BasketId = this._basketServices.GetBasketId().Value, CultureName = Thread.CurrentThread.CurrentUICulture.Name, MerchantId = this._webStoreConfigurationServices.GetConfiguration().MerchantId.Value, UserId = this._webstoreProfileServices.GetUser() }); webStoreServices.Dispose(); } return this.View(viewModel); }