Easy.Tools.Finance.CBAR
1.0.1
See the version list below for details.
dotnet add package Easy.Tools.Finance.CBAR --version 1.0.1
NuGet\Install-Package Easy.Tools.Finance.CBAR -Version 1.0.1
<PackageReference Include="Easy.Tools.Finance.CBAR" Version="1.0.1" />
<PackageVersion Include="Easy.Tools.Finance.CBAR" Version="1.0.1" />
<PackageReference Include="Easy.Tools.Finance.CBAR" />
paket add Easy.Tools.Finance.CBAR --version 1.0.1
#r "nuget: Easy.Tools.Finance.CBAR, 1.0.1"
#:package Easy.Tools.Finance.CBAR@1.0.1
#addin nuget:?package=Easy.Tools.Finance.CBAR&version=1.0.1
#tool nuget:?package=Easy.Tools.Finance.CBAR&version=1.0.1
Easy.Tools.Finance.CBAR
Easy.Tools.Finance.CBAR is a lightweight .NET library designed to fetch daily exchange rates from the Central Bank of Azerbaijan (CBAR/AMB).
Features
- Multi-Target: Supports
.NET Standard 2.0,.NET 8.0, and.NET 9.0. - Resilient: Built-in retry logic for handling network glitches.
- Easy Integration: Seamless integration with
IServiceCollection(Dependency Injection). - Flattened Data: Automatically handles CBAR's nested XML structure and returns a clean list of currencies.
Installation
Install via NuGet:
dotnet add package Easy.Tools.Finance.CBAR
Or via NuGet Package Manager:
Install-Package Easy.Tools.Finance.CBAR
Features
- Easy Integration: Fully compatible with .NET Dependency Injection (DI).
- Resilience (Retry Logic): Includes built-in retry mechanisms to handle temporary network glitches or CBAR server timeouts.
- Type-Safe: Automatically handles XML parsing and returns clean C# objects with
decimalproperties. - Configurable: Retry counts and delay durations are fully customizable via options.
Usage
1. Service Registration (Program.cs)
Register the service in your Program.cs:
using Easy.Tools.Finance.CBAR.Extensions;
var builder = WebApplication.CreateBuilder(args);
// Standard registration:
builder.Services.AddCbarClient();
// OR: Registration with custom options:
builder.Services.AddCbarClient(options =>
{
options.RetryCount = 5; // Retry 5 times on failure
options.RetryDelaySeconds = 2; // Wait 2 seconds between retries
});
//OR: Registration with custom CBAR Base URL (e.g., using a proxy or mirror):
builder.Services.AddCBARClient(options =>
{
options.BaseUrl = "https://my-proxy-server.com/cbar-mirror/";
});
var app = builder.Build();
2. Fetching Rates (Controller Example)
Inject ICbarClient into your controllers or services.
using Easy.Tools.Finance.CBAR;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("[controller]")]
public class CurrencyController : ControllerBase
{
private readonly ICbarClient _cbarClient;
public CurrencyController(ICbarClient cbarClient)
{
_cbarClient = cbarClient;
}
[HttpGet]
public async Task<IActionResult> GetRates()
{
// Fetch all rates
var rates = await _cbarClient.GetTodayRatesAsync();
// 1. Sadecə Valyutaları Al (USD, EUR vs.)
var currencies = rates.Where(x => x.CurrencyType == "Xarici valyutalar").ToList();
// 2. Sadecə Qiymətli Metallerı Al (Qızıl, Gümüş vs.)
// "Bank metalları"
var metals = rates.Where(x => x.CurrencyType == "Bank metalları").ToList();
var gold = metals.FirstOrDefault(x => x.Code == "XAU");
if (gold != null)
{
Console.WriteLine($"1 Unsiya Qızıl: {gold.Value} AZN");
}
var usd = currencies.FirstOrDefault(x => x.Code == "USD");
if (usd != null)
{
Console.WriteLine($"1 ABŞ Dolları: {usd.Value} AZN");
}
return Ok(rates);)
}
}
Models
The package returns a list of CbarCurrency objects. Key properties include:
Code: Currency or Metal code (e.g.,USD,EUR,XAU).Name: Name of the currency in Azerbaijani (e.g.,1 ABŞ dolları,Qızıl).Value: The exchange rate (Decimal). This is the official rate provided by CBAR.Nominal: The unit amount (e.g.,1,100). Example: For JPY, Nominal is 100.CurrencyType: The category of the currency (e.g.,Xarici valyutalarfor currencies,Bank metallarıfor metals).
License
MIT License.
© 2025 Elmin Alirzayev / Easy Code Tools
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.2)
- Microsoft.Extensions.Http (>= 10.0.2)
-
net10.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.2)
- Microsoft.Extensions.Http (>= 10.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release: Supports daily rate fetching, retry logic, and DI integration.