v2.0.0 - Modern API with Validation
Breaking Changes π¨
- Renamed
TransferTypeRecordSpecifictoBankTransferCommonDetailsfor clarity - Removed
CreateGeorgianmethods that auto-prefixed "GE" to IBANs
What's New β¨
π‘οΈ Validation-based API
New value objects with built-in validation using the Result pattern:
Iban- Validates IBAN format, length (15-34 chars), and structureCurrency- Validates ISO 4217 3-letter currency codesBankAccount- Combines IBAN and currency with validation
π¦ Better Factory Methods
// Old style - no validation
var credentials = new TBCApiCredentials("user", "pass");
// New style - with validation
var credentialsResult = TBCApiCredentials.Create("user", "pass");
if (credentialsResult.IsFailure)
return credentialsResult.Error;π§ NuGet Package Fix
Fixed issue where AppifySheets.Immutable.BankIntegrationTypes was listed as a dependency while also being bundled. Now correctly bundles the DLL without listing as dependency.
Migration Guide π
-
Update Transfer Type Names
- Replace
TransferTypeRecordSpecificwithBankTransferCommonDetails
- Replace
-
Consider New Value Objects (Old types marked
[Obsolete]but still work)BankAccountVβIbanCurrencyVβCurrencyBankAccountWithCurrencyVβBankAccount
-
Use Factory Methods for Validation
// Create with validation var account = BankAccount.Create("GE31TB7467936080100003", "GEL"); if (account.IsFailure) Console.WriteLine(account.Error);
Full Changelog
- Fixed NuGet package bundling with
PrivateAssets="all" - Added validation-based value objects
- Improved API naming conventions
- Maintained backward compatibility with
[Obsolete]attributes - Updated demo and test projects to use new API
Collaboration by Claude