public ActionResult SelectAddress(AddressTypes addressType) { var customer = HttpContext.GetCustomer(); var primaryAddressId = addressType == AddressTypes.Shipping ? customer.PrimaryShippingAddressID : customer.PrimaryBillingAddressID; var checkoutContext = PersistedCheckoutContextProvider.LoadCheckoutContext(customer); var pageTitle = string.Empty; if (!AppLogic.AppConfigBool("AllowShipToDifferentThanBillTo") || addressType == AddressTypes.Account) { pageTitle = AppLogic.GetString("checkoutaddress.chooseabillingandshippingaddress", customer.LocaleSetting); } else if (addressType == AddressTypes.Shipping) { pageTitle = AppLogic.GetString("checkoutaddress.chooseashippingaddress", customer.LocaleSetting); } else { pageTitle = AppLogic.GetString("checkoutaddress.chooseabillingaddress", customer.LocaleSetting); } var addresses = AddressControllerHelper.GetCustomerAddresses(customer); var model = new SelectAddressViewModel { SelectedAddressId = primaryAddressId, SelectedAddress = addresses .Where(address => address.Id == primaryAddressId) .FirstOrDefault(), AddressOptions = addresses, AddressType = addressType, PageTitle = pageTitle, AddressSelectionLocked = (addressType == AddressTypes.Billing && checkoutContext.OffsiteRequiredBillingAddressId.HasValue) || (addressType == AddressTypes.Shipping && checkoutContext.OffsiteRequiredShippingAddressId.HasValue) }; return(PartialView(ViewNames.SelectAddressPartial, model)); }
/// <summary> /// list of previous addresses of the user. If empty redirect to new address form page /// </summary> /// <returns>ActionResult--> list of addresses</returns> public ActionResult SelectAddress() { try { Guid UserID = new Guid(Session["UserID"].ToString()); IEnumerable <AddressDTO> addressDTOs = addressBusinessContext.getUserAddresses(UserID); SelectAddressViewModel selectAddressViewModel = new SelectAddressViewModel(); selectAddressViewModel.Addresses = AddressMapper.Map <IEnumerable <AddressDTO>, IEnumerable <AddressViewModel> >(addressDTOs); if (selectAddressViewModel.Addresses.ToList().Count == 0) { return(View(selectAddressViewModel));; } else { return(View(selectAddressViewModel)); } } catch (Exception ex) { return(RedirectToAction("ExceptionCatch", "Static", new { exception = ex.Message })); } }