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