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); } }
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); } }