Example #1
0
        public static FWTContactPostal Map(this Address address)
        {
            FWTContactPostal contactPostal = null;

            if (address != null)
            {
                contactPostal = new FWTContactPostal {
                    Preferred = true
                };

                if (!string.IsNullOrEmpty(address.UPRN))
                {
                    contactPostal.Option = new [] { VerintConstants.UseUprnForAddress, VerintConstants.IgnoreInvalidUprn };
                    contactPostal.UPRN   = address.UPRN.Trim();
                }
                else
                {
                    contactPostal.AddressNumber = address.Number;
                    contactPostal.AddressLine   = new[] { address.AddressLine1, address.AddressLine2, address.AddressLine3, address.City };
                    contactPostal.City          = address.City;
                    contactPostal.Postcode      = address.Postcode?.Trim();
                }
            }

            return(contactPostal);
        }
        private static bool AddAddressUpdates(this FWTIndividualUpdate update, FWTIndividual individual, Customer customer)
        {
            if (customer.Address == null)
            {
                return(false);
            }

            if (individual.RequiresAddressUpdate(customer))
            {
                var newContactPostal = new FWTContactPostal();
                newContactPostal.Preferred = true;
                if (!string.IsNullOrEmpty(customer.Address.UPRN))
                {
                    newContactPostal.Option = new [] { VerintConstants.UseUprnForAddress, VerintConstants.IgnoreInvalidUprn };
                    newContactPostal.UPRN   = customer.Address.UPRN.Trim();
                }
                else
                {
                    newContactPostal.AddressNumber = customer.Address.Number;
                    newContactPostal.AddressLine   = new[] { customer.Address.AddressLine1, customer.Address.AddressLine2, customer.Address.AddressLine3, customer.Address.City };
                    newContactPostal.City          = customer.Address.City;
                    newContactPostal.Postcode      = customer.Address.Postcode;
                }

                update.ContactPostals = new[] { new FWTContactPostalUpdate {
                                                    PostalDetails = newContactPostal, ListItemUpdateType = "Insert"
                                                } };
                return(true);
            }
            else if (!string.IsNullOrWhiteSpace(customer.Address.UPRN) && individual.ContactPostals != null)
            {
                var preferredContact = individual.ContactPostals.FirstOrDefault(x => x.Preferred);

                if (preferredContact != null)
                {
                    if (string.IsNullOrEmpty(preferredContact.UPRN))
                    {
                        return(false);
                    }

                    if (customer.Address.UPRN.Trim() != preferredContact.UPRN.Trim())
                    {
                        var contactPostal = individual.ContactPostals.Where(_ => _.UPRN != null).FirstOrDefault(_ => _.UPRN.Trim() == customer.Address.UPRN.Trim());
                        if (contactPostal != null)
                        {
                            contactPostal.Preferred = true;
                            update.ContactPostals   = new[] { new FWTContactPostalUpdate {
                                                                  PostalDetails = contactPostal, ListItemUpdateType = "Update"
                                                              } };
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
 public static Address Map(this FWTContactPostal contactPostal)
 {
     return(new Address
     {
         UPRN = contactPostal.UPRN,
         AddressLine1 = contactPostal.AddressLine[0],
         AddressLine2 = contactPostal.AddressLine[1],
         AddressLine3 = contactPostal.AddressLine[2],
         City = contactPostal.City,
         Number = contactPostal.AddressNumber,
         Postcode = contactPostal.Postcode,
         PropertyId = contactPostal.PropertyID,
     });
 }