public virtual void MapAddress( CustomerContact currentContact, CustomerAddressTypeEnum addressType, VippsAddress vippsAddress, string phoneNumber) { if (currentContact == null) { throw new ArgumentNullException(nameof(currentContact)); } if (vippsAddress == null) { throw new ArgumentNullException(nameof(vippsAddress)); } // Vipps addresses don't have an ID // They can be identified by Vipps address type var address = currentContact.ContactAddresses.FindVippsAddress(vippsAddress.AddressType); var isNewAddress = address == null; if (isNewAddress) { address = CustomerAddress.CreateInstance(); address.AddressType = addressType; } // Maps fields onto customer address: // Vipps address type, street, city, postalcode, countrycode MapVippsAddressFields(address, vippsAddress); if (!string.IsNullOrWhiteSpace(phoneNumber)) { address.DaytimePhoneNumber = address.EveningPhoneNumber = phoneNumber; } if (isNewAddress) { currentContact.AddContactAddress(address); } else { currentContact.UpdateContactAddress(address); } }
public virtual void MapVippsAddressFields( CustomerAddress address, VippsAddress vippsAddress ) { if (address == null) { throw new ArgumentNullException(nameof(address)); } if (vippsAddress == null) { throw new ArgumentNullException(nameof(vippsAddress)); } address.Name = $"Vipps - {address.GetVippsAddressType()}"; address.Line1 = vippsAddress.StreetAddress; address.City = vippsAddress.Region; address.PostalCode = vippsAddress.PostalCode; address.CountryCode = ToEpiCountryCode(vippsAddress.Country); address.SetVippsAddressType(vippsAddress.AddressType); }
public static CustomerAddress FindVippsAddress(this IEnumerable <CustomerAddress> addresses, VippsAddress address) { return(FindVippsAddress(addresses, address.AddressType)); }