public async Task <ActionResult> Shipping(CartEditShippingAddressModel model) { try { var actionData = this.GetActionData(); switch (actionData.ActionName) { case Actions.Continue: //if (!ControllerModelFactory.IsValidPostalCode(model.PostalCode)) //{ // ModelState.AddModelError("PostalCode", "Invalid postal code."); //} if (!ModelState.IsValid) { if (model.StateCodes == null) { model.StateCodes = GetStateCodes(string.IsNullOrEmpty(model.StateCode)); } return(View(model)); } model.CountryCode = "US"; // BUG: CartEditShippingAddressModel does not contain country code. var shippingAddress = new UCart_ShippingAddress() { Name = model.Name, AddressLine1 = model.AddressLine1, AddressLine2 = model.AddressLine2, City = model.City, StateCode = model.StateCode, PostalCode = model.PostalCode, CountryCode = model.CountryCode }; _ = await CartUserService.UpdateShippingAddressAsync(GetUserId(), shippingAddress); return(RedirectToAction("Confirm")); case Actions.Back: return(RedirectToAction("Index")); default: throw new InvalidOperationException(string.Format("Unknown action {0}", actionData.ActionName)); //{ // var svcOrder = await ServicePool.OrderService.GetCartOrderAsync(GetUserId()); // model = CartModelFactory.CreateCartShippingAddressModel(svcOrder); // ModelState.Clear(); // return View("Shipping", model); //} } } catch (ServiceException ex) { AddModelErrors(ex); return(View()); } }
public async Task <bool> UpdateShippingAddressAsync(string userId, UCart_ShippingAddress shippingAddress) { using var log = BeginFunction(nameof(CartUserService), nameof(UpdateShippingAddressAsync), userId, shippingAddress); try { //AssertIsEndUser(userId); await Assert(SecurityPolicy.IsAuthorized, userId).ConfigureAwait(false); var ordererReference = CreateOrdererReference.FromUserId(userId); var ordererId = await OrderMicroService.AllocateOrdererAsync(ordererReference).ConfigureAwait(false); var result = await OrderMicroService.UpdateShippingAddressAsync(ordererId, shippingAddress).ConfigureAwait(false); log.Result(result); return(result); } catch (Exception ex) { log.Exception(ex); throw; } }