Skip to content

fix: Bundle BankIntegrationTypes DLL without NuGet dependency (v1.1.2)#16

Closed
petre-c wants to merge 2 commits intomainfrom
fix/bundled-dll-dependency-v1.1.2
Closed

fix: Bundle BankIntegrationTypes DLL without NuGet dependency (v1.1.2)#16
petre-c wants to merge 2 commits intomainfrom
fix/bundled-dll-dependency-v1.1.2

Conversation

@petre-c
Copy link
Contributor

@petre-c petre-c commented Aug 5, 2025

Summary

  • Fixed NuGet package structure to bundle BankIntegrationTypes DLL without listing it as a dependency
  • Introduced modern API with validation and better naming
  • Version bumped to 1.1.2

Problem

The generated NuGet package was listing AppifySheets.Immutable.BankIntegrationTypes as a dependency even though the DLL was bundled inside the package. This caused restore failures in consuming projects.

Solution

Added PrivateAssets="all" to the ProjectReference to prevent it from being listed as a NuGet dependency while still bundling the DLL.

API Improvements

New value object types with validation:

  • Iban - Validates IBAN format, length, and structure
  • Currency - Validates ISO 4217 3-letter currency codes
  • BankAccount - Combines IBAN and currency with validation

Better naming:

  • TransferTypeRecordSpecificBankTransferCommonDetails
  • Removed confusing CreateGeorgian methods that auto-prefixed "GE"

Factory methods with Result pattern:

// Old style
var credentials = new TBCApiCredentials("user", "pass");

// New style with validation
var credentialsResult = TBCApiCredentials.Create("user", "pass");
if (credentialsResult.IsFailure)
    return credentialsResult.Error;

Backward Compatibility

  • Original types (BankAccountV, CurrencyV, BankAccountWithCurrencyV) marked as [Obsolete]
  • All existing code continues to work
  • Demo and test projects updated to showcase new API

Test Plan

  • Solution builds without errors
  • All tests pass
  • NuGet package bundles DLL correctly
  • No breaking changes for existing consumers

Collaboration by Claude

Petre Chitashvili and others added 2 commits August 4, 2025 23:32
Added dotnet add package command for easy installation

*Collaboration by Claude*
Major changes:
- Fixed NuGet package to bundle BankIntegrationTypes DLL without listing it as a dependency
- Added PrivateAssets="all" to prevent transitive dependency issues
- Bumped version to 1.1.2

API improvements:
- Introduced modern value object types with validation:
  - `Iban` (replaces BankAccountV) with IBAN format validation
  - `Currency` (replaces CurrencyV) with ISO 4217 validation
  - `BankAccount` (replaces BankAccountWithCurrencyV) combining IBAN and currency
- Added static factory methods with Result<T> pattern for all API classes
- Renamed `TransferTypeRecordSpecific` to `BankTransferCommonDetails` for clarity
- Fixed broken documentation link for payment order status

Backward compatibility:
- Original types marked as [Obsolete] but still functional
- Demo and test projects updated to use new API
- Public constructors maintained for TBC API classes

Breaking changes:
- None - all changes are backward compatible

*Collaboration by Claude*

Co-Authored-By: Claude <noreply@anthropic.com>
@petre-c petre-c closed this Aug 5, 2025
@petre-c petre-c deleted the fix/bundled-dll-dependency-v1.1.2 branch August 5, 2025 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments