Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public static CustomerAddress FindVippsAddress(this IEnumerable <CustomerAddress> addresses, VippsAddress address)
 {
     return(FindVippsAddress(addresses, address.AddressType));
 }