Beispiel #1
0
        public bool RepresentsAddress(global::Nop.Core.Domain.Common.Address address)
        {
            var country = GetNopCountry();

            var result = address.CountryId == country.Id &&
                         string.Compare((address.City ?? string.Empty).Trim(), City, StringComparison.OrdinalIgnoreCase) == 0 &&
                         string.Compare((address.ZipPostalCode ?? string.Empty).Trim(), PostalCode, StringComparison.OrdinalIgnoreCase) == 0;

            if (result)
            {
                var addr1 = (address.Address1 ?? string.Empty).Trim();

                // In germany street name and number are separate fields so check if they are part of the address field.
                if (country.NumericIsoCode == GERMANY)
                {
                    result = CultureInfo.InvariantCulture.CompareInfo.IndexOf(addr1, StreetName, CompareOptions.IgnoreCase) != -1 &&
                             CultureInfo.InvariantCulture.CompareInfo.IndexOf(addr1, StreetNumber, CompareOptions.IgnoreCase) != -1;
                }
                else
                {
                    result = string.Compare(addr1, StreetAddress, StringComparison.OrdinalIgnoreCase) == 0;
                }
            }

            return(result);
        }
        public void SyncBillingAndShippingAddress(global::Nop.Core.Domain.Customers.Customer customer, KlarnaCheckoutOrder klarnaCheckoutOrder)
        {
            try
            {
                var billingAddress  = klarnaCheckoutOrder.BillingAddress;
                var shippingAddress = klarnaCheckoutOrder.ShippingAddress;

                var nopBillingAddress = customer.Addresses.FirstOrDefault(billingAddress.RepresentsAddress);
                if (nopBillingAddress == null)
                {
                    nopBillingAddress = new global::Nop.Core.Domain.Common.Address {
                        CreatedOnUtc = DateTime.UtcNow
                    };
                    customer.Addresses.Add(nopBillingAddress);
                }

                customer.BillingAddress = nopBillingAddress;
                billingAddress.CopyTo(nopBillingAddress);

                var nopShippingAddress = customer.Addresses.FirstOrDefault(shippingAddress.RepresentsAddress);
                if (nopShippingAddress == null)
                {
                    nopShippingAddress = new global::Nop.Core.Domain.Common.Address {
                        CreatedOnUtc = DateTime.UtcNow
                    };
                    customer.Addresses.Add(nopShippingAddress);
                }

                customer.ShippingAddress = nopShippingAddress;
                shippingAddress.CopyTo(nopShippingAddress);

                _customerService.UpdateCustomer(customer);
            }
            catch (Exception ex)
            {
                var billing  = JsonConvert.SerializeObject(klarnaCheckoutOrder.BillingAddress);
                var shipping = JsonConvert.SerializeObject(klarnaCheckoutOrder.ShippingAddress);
                throw new KlarnaCheckoutException(string.Format(CultureInfo.CurrentCulture, "Error syncing addresses. Billing: {0}, Shipping: {1}", billing, shipping), ex);
            }
        }
Beispiel #3
0
        public void CopyTo(global::Nop.Core.Domain.Common.Address address)
        {
            var country = GetNopCountry();

            address.Email         = Email;
            address.City          = City;
            address.Country       = country;
            address.CountryId     = country.Id;
            address.FirstName     = GivenName;
            address.LastName      = FamilyName;
            address.ZipPostalCode = PostalCode;
            address.FaxNumber     = Phone;

            if (country.NumericIsoCode == GERMANY)
            {
                address.Address1 = StreetName + " " + StreetNumber;
            }
            else
            {
                address.Address1 = StreetAddress;
            }
        }
        public void SyncBillingAndShippingAddress(global::Nop.Core.Domain.Customers.Customer customer, KlarnaCheckoutOrder klarnaCheckoutOrder)
        {
            try
            {
                var billingAddress = klarnaCheckoutOrder.BillingAddress;
                var shippingAddress = klarnaCheckoutOrder.ShippingAddress;

                var nopBillingAddress = customer.Addresses.FirstOrDefault(billingAddress.RepresentsAddress);
                if (nopBillingAddress == null)
                {
                    nopBillingAddress = new global::Nop.Core.Domain.Common.Address { CreatedOnUtc = DateTime.UtcNow };
                    customer.Addresses.Add(nopBillingAddress);
                }

                customer.BillingAddress = nopBillingAddress;
                billingAddress.CopyTo(nopBillingAddress);

                var nopShippingAddress = customer.Addresses.FirstOrDefault(shippingAddress.RepresentsAddress);
                if (nopShippingAddress == null)
                {
                    nopShippingAddress = new global::Nop.Core.Domain.Common.Address { CreatedOnUtc = DateTime.UtcNow };
                    customer.Addresses.Add(nopShippingAddress);
                }

                customer.ShippingAddress = nopShippingAddress;
                shippingAddress.CopyTo(nopShippingAddress);

                _customerService.UpdateCustomer(customer);
            }
            catch (Exception ex)
            {
                var billing = JsonConvert.SerializeObject(klarnaCheckoutOrder.BillingAddress);
                var shipping = JsonConvert.SerializeObject(klarnaCheckoutOrder.ShippingAddress);
                throw new KlarnaCheckoutException(string.Format(CultureInfo.CurrentCulture, "Error syncing addresses. Billing: {0}, Shipping: {1}", billing, shipping), ex);
            }
        }