public virtual async Task <IHttpActionResult> UpdateAddressAsync(Guid id, EditAddressRequest request) { var returnUrl = request.ReturnUrl; if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl)) { returnUrl = MyAccountUrlProvider.GetAddressListUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); } var viewModel = await CustomerAddressViewService.UpdateAddressAsync(new EditAddressParam { CustomerId = ComposerContext.CustomerId, CultureInfo = ComposerContext.CultureInfo, Scope = ComposerContext.Scope, EditAddress = request, AddressId = id, ReturnUrl = returnUrl }); if (viewModel == null) { return(Unauthorized()); } return(Ok(viewModel)); }
public void WhenCallingEditAddressFor_AnValidPerson_AndAnInvalidAddressId_ItShouldFail() { var editRequest = new EditAddressRequest(GetRequestTestsHelper.ValidPersonId, GetRequestTestsHelper.InvalidAddressId); editRequest.Find(); editRequest.Succeeded().Should().BeFalse(); var result = editRequest.Result(); result.Should().BeNull(); }
public void WhenCallingEditAddressFor_AValidPerson_AndAValidAddressId_ItShouldReturnThatAddress() { var addressId = GetRequestTestsHelper.ValidAddressId; var editRequest = new EditAddressRequest(GetRequestTestsHelper.ValidPersonId, addressId); editRequest.Find(); editRequest.Succeeded().Should().BeTrue(); var result = editRequest.Result(); result.Should().NotBeNull(); result.Id.Should().Be(addressId); }
/// <summary> /// Convert a request to <see cref="Address"/>, including mandatory, optional and additionnal properties /// </summary> /// <param name="baseAddress"> /// The fully populated address to update, be warned that incomplete update form will wipe data, /// it is best practice to load from repository before saving. The base adresse is the one loaded from the repository /// </param> /// <param name="request"></param> /// <returns></returns> protected virtual Address ConvertToAddress(Address baseAddress, EditAddressRequest request) { baseAddress.AddressName = request.AddressName; baseAddress.City = request.City; baseAddress.CountryCode = request.CountryCode; baseAddress.FirstName = request.FirstName; baseAddress.LastName = request.LastName; baseAddress.Line1 = request.Line1; baseAddress.Line2 = request.Line2; baseAddress.PhoneNumber = request.PhoneNumber; baseAddress.PostalCode = request.PostalCode; baseAddress.RegionCode = request.RegionCode; baseAddress.IsPreferredShipping = request.IsPreferredShipping; baseAddress.IsPreferredBilling = request.IsPreferredBilling; baseAddress.PropertyBag = baseAddress.PropertyBag ?? new PropertyBag(); foreach (var additionnalProperty in request.AdditionnalProperties) { baseAddress.PropertyBag[additionnalProperty.Key] = additionnalProperty.Value; } return(baseAddress); }