public async Task ProcessFormAsync() { if (_addressId == null) { // Add Address but check for duplicate var existingAddresses = await _checkoutDataRepository.GetAllShippingAddressesAsync(); var matchingExistingAddress = Address.FindMatchingAddress(Address, existingAddresses); if (matchingExistingAddress != null) { Address = matchingExistingAddress; } else { await _checkoutDataRepository.SaveShippingAddressAsync(Address); } } else { // Updated existing address await _checkoutDataRepository.SaveShippingAddressAsync(Address); } }