public string GenerateMergeKey()
        {
            var mergeKey = $"{StateTerritory}|{LocalityName}|{Postcode}|";

            if (PostalDeliveryType.HasValue())
            {
                if (PostalDeliveryNumber.HasValue())
                {
                    mergeKey += $"|||{PostalDeliveryType} {PostalDeliveryNumber}||||||";
                }
                else
                {
                    mergeKey += $"|||{PostalDeliveryType}||||||";
                }
            }
            else
            {
                if (StreetNumber1.HasValue())
                {
                    mergeKey += $"{StreetName}|{StreetType}|{StreetSuffix}|{StreetNumber1}|";
                }
                else
                {
                    mergeKey += $"{StreetName}|{StreetType}|{StreetSuffix}|LOT {LotIdentifier}|";
                }
                mergeKey += $"{StreetNumber2}|{SiteName}|{ComplexUnitType}|{ComplexUnitIdentifier}|{ComplexLevelType}|{ComplexLevelNumber}";
            }
            return(mergeKey);
        }
        private void BuildPostalAddressPart(StringBuilder builder)
        {
            // postal_address = postal_type ( / SP postal_number_part)
            //     postal_number_part = ( / postal_number_prefix) postal_number ( / postal_number_suffix)
            builder.Append(PostalDeliveryType);

            if (PostalDeliveryNumber.HasValue())
            {
                builder.Append(Sp);
                builder.Append(PostalDeliveryNumber);
            }
        }