- Notifications
You must be signed in to change notification settings - Fork0
Some central bank exchange rates. (Australia,Canada,Denmark,Europe,Israel,Poland,Russia,Turkey)
NotificationsYou must be signed in to change notification settings
HakanUcaar/EasyExchangeRate
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Some central bank exchange rates
Minimal APi
Deploy on heroku :
docker build -t exchange . docker tag exchange registry.heroku.com/<herokuAppName>/web heroku login heroku container:login heroku container:push web -a <herokuAppName> heroku container:release web -a <herokuAppName>
Heroku url :https://easy-exchange-rate.herokuapp.com/swagger/index.html
Test Api :
getCurrencies : https://easy-exchange-rate.herokuapp.com/currencies?adapter=TurkeyAdaptergetRates : https://easy-exchange-rate.herokuapp.com/getRates?adapter=DenmarkAdapternumberToWord : https://easy-exchange-rate.herokuapp.com/numberToWord?language=English&value=123456789
Todo
- JSON serialize
- Nuget package
- Web deploy(open api)
- DateRange
- Australia
- Canada
- Denmark
- Europe
- Israel
- Poland
- Russia
- Turkey
- Add number to word localizations
- Turkish
- English
- Affrikan
- Arabic
- Armenian
- Azerbaijani
- Bangla
- Bulgarian
- Chinese
- Croatian
- Czech
- Farsi
- Finnish
- French
- German
- Greek
- Indian
- Italian
- Japanese
- Korean
- Latvian
- Polish
- Romanian
- Russian
- Spanish
- Tamil
- Thai
- Ukrainian
- Uzbek
- Vietnamase
- TurkeyAdapter
- EuropeAdapter
- DenmarkAdapter
- IsraelAdapter
- RussiaAdapter
- AustraliaAdapter
- PolandAdapter
- CanadaAdapter
ExchangeRate.EuropeAdapter.Currencies.ForEach(currency=>{Console.WriteLine(currency.ToString());});
Output
US DollarJapanese YenBulgarian levCzech korunaDanish kroneBritish PoundHungarian ForintPolish ZlotyRomanian LeuSwedish KronaSwiss francIcelandic KrónaNorwegian KroneCroatian KunaTurkish LiraAustralian dollarBrazilian realCanadian dollarRenminbiHong Kong DollarIndonesian RupiahIsraeli New ShekelIndian RupeeSouth Korean WonMexican PesoMalaysian RinggitNew Zealand DollarPhilippine PisoSingapore DollarThai BahtCFP franc
varrate=ExchangeRate.TurkeyAdapter.GetRate(CurrencyCodes.EUR);Console.WriteLine($"1{rate.TargetCurrency.Name} ={rate.Money.Amount}{rate.Money.Currency.IsoCode}");
Output
Base Currency : Turkish Lira Rate : 1 Euro = 18,0545 TRY
ExchangeRate.TurkeyAdapter.GetRates().ForEach(rate=>{Console.WriteLine($"1{rate.TargetCurrency.Name} ={rate.Money.Amount}{rate.Money.Currency.IsoCode}");});
Output
Base Currency : Turkish LiraRates :1 US Dollar = 18,2050 TRY1 Australian dollar = 12,3295 TRY1 Danish krone = 2,4240 TRY1 Euro = 18,0545 TRY1 British Pound = 20,8916 TRY1 Swiss franc = 18,4913 TRY1 Swedish Krona = 1,6740 TRY1 Canadian dollar = 13,8206 TRY1 Kuwaiti Dinar = 58,6698 TRY1 Norwegian Krone = 1,8133 TRY1 Saudi Riyal = 4,8436 TRY1 Japanese Yen = 12,9276 TRY1 Bulgarian lev = 9,2100 TRY1 Romanian Leu = 3,7237 TRY1 Russian Ruble = 0,29787 TRY1 Iranian Rial = 0,04310 TRY1 Renminbi = 2,6103 TRY1 Pakistani Rupee = 0,08247 TRY1 Qatari Rial = 4,9327 TRY1 South Korean Won = 0,01320 TRY1 Azerbaijani manat = 10,6551 TRY1 United Arab Emirates dirham = 4,9286 TRY1 Special Drawing Rights = 23,6160 TRY
varconvert=ExchangeRate.TurkeyAdapter.HowMuch<EurCurrency,UsdCurrency>(1);Console.WriteLine($"1{convert.TargetCurrency.ToString()} ={Math.Round(convert.Money.Amount,4)}{convert.Money.Currency.Symbol} ");
Output
1 Euro = 0,9917$
varrateUsd=ExchangeRate.EuropeAdapter.GetRate(CurrencyCodes.USD);Console.WriteLine($"1{rateUsd.Money.Currency.Name } ={rateUsd.Money.Amount}{rateUsd.TargetCurrency.Name}");Console.WriteLine($"Plus +3 = "+(rateUsd+3));Console.WriteLine($"Minus -1.5 = "+(rateUsd-1.3M));Console.WriteLine($"Divide 2 = "+(rateUsd/2));Console.WriteLine($"Multiply 5 = "+(rateUsd*5));
Output
1 Euro = 0,9920 US DollarPlus +3 = 3,9920 USDMinus -1.5 = -0,3080 USDDivide 2 = 0,4960 USDMultiply 5 = 4,9600 USD
...
Code:ExchangeRate.TurkeyAdapter.GetRate(CurrencyCodes.EUR).Do(rate=>{Console.WriteLine(EnglishNumberToWordsConverter.New().ToWord(rate));});Output:EighteenTurkish Lira One Thousand Nine Hundred Fifty Four kuruş
Code:Console.WriteLine(EnglishNumberToWordsConverter.New().Convert(1000100));Console.WriteLine(TurkishNumberToWordConverter.New().Convert(1000100));Output:OneMillion One HundredBir Milyon Yüz
Code:Console.WriteLine(EnglishNumberToWordsConverter.New().Convert("One Billion Two Hundred Thirty Four Million Five Hundred Sixty Seven Thousand Eight Hundred Ninety Two"));Console.WriteLine(TurkishNumberToWordConverter.New().Convert("Bir Milyar İki Yüz Otuz Dört Milyon Beş Yüz Altmış Yedi Bin Sekiz Yüz Doksan İki"));Output:12345678921234567892
CodeRate rate=ExchangeRate.TurkeyAdapterHumanizer.EUR.DövizKuru;Console.WriteLine($"1{rate.TargetCurrency.Name} ={rate.Money.Amount}{rate.Money.Currency.IsoCode}");Output1Euro=18,5130TRY
CodeList<Rate> rates=ExchangeRate.TurkeyAdapterHumanizer.EUR.USD.DövizKuru;rates.ForEach(rate=>Console.WriteLine($"1{rate.TargetCurrency.Name} ={rate.Money.Amount}{rate.Money.Currency.IsoCode}"));Output1USDollar=18,2205TRY1 Euro=18,5130TRY
CodeList<Rate> convert=ExchangeRate.TurkeyAdapterHumanizer.USD.EUR.GBP.Çevir;convert.ForEach(rate=>Console.WriteLine($"1{rate.TargetCurrency.Name} ={rate.Money.Amount}{rate.Money.Currency.IsoCode}"));Output1USDollar=0,9842EUR1 US Dollar=0,8546GBP
Console.WriteLine($"Base Currency :{ExchangeRate.TurkeyAdapter.BaseCurrency.Name}");ExchangeRate.TurkeyAdapter.GetRate(CurrencyCodes.USD).Do(rate=>{Console.WriteLine($"Rate :{EnglishNumberToWordsConverter.New().ToWord(rate)}");Console.WriteLine(rate.ToJson());});
Output
Base Currency : Turkish LiraRate word : Eighteen Turkish Lira Five Thousand Five Hundred Fifty kuruş{ "TargetCurrency": { "Symbol": "$", "IsoCode": 840, "NumericCode": "840", "Name": "US Dollar", "SubUnit": "Cent" }, "Money": { "Amount": 18.5589, "Currency": { "Symbol": "?", "IsoCode": 949, "NumericCode": "949", "Name": "Turkish Lira", "SubUnit": "kuruş" } }, "ExtraInfo": { "ForexBuying": 18.5589, "ForexSelling": 18.5923, "BanknoteBuying": 18.5459, "BanknoteSelling": 18.6202 }}
Console.WriteLine($"Base Currency :{ExchangeRate.TurkeyAdapter.BaseCurrency.Name}");ExchangeRate.TurkeyAdapter.GetRate(CurrencyCodes.EUR,DateTime.Now.AddDays(-3)).Do(rate=>{Console.WriteLine($"Relase Date :{rate.RelaseDate.ToString("dd.MM.yyyy")}");Console.WriteLine($"{rate.TargetCurrency.Name} = "+rate.Money.Amount);});
Output
Base Currency : Turkish LiraRelase Date : 07.10.2022Euro = 18,1795
Console.WriteLine($"Base Currency :{ExchangeRate.TurkeyAdapter.BaseCurrency.Name}");Console.WriteLine("Rates :");Console.WriteLine(ExchangeRate.TurkeyAdapter.GetJsonRates(DateRange.From((DateTime.Now.AddDays(-1),DateTime.Now))));
Output
[ [ { "RelaseDate": "2022-10-09T22:11:25.1056739+03:00", "TargetCurrency": { "Symbol": "$", "IsoCode": 840, "NumericCode": "840", "Name": "US Dollar", "SubUnit": "Cent" }, "Money": { "Amount": 18.5592, "Currency": { "Symbol": "?", "IsoCode": 949, "NumericCode": "949", "Name": "Turkish Lira", "SubUnit": "kuruş" } }, "ExtraInfo": { "ForexBuying": 18.5592, "ForexSelling": 18.5927, "BanknoteBuying": 18.5462, "BanknoteSelling": 18.6206 } }...], [ { "RelaseDate": "2022-10-10T22:11:26.9664876+03:00", "TargetCurrency": { "Symbol": "$", "IsoCode": 840, "NumericCode": "840", "Name": "US Dollar", "SubUnit": "Cent" }, "Money": { "Amount": 18.5581, "Currency": { "Symbol": "?", "IsoCode": 949, "NumericCode": "949", "Name": "Turkish Lira", "SubUnit": "kuruş" } }, "ExtraInfo": { "ForexBuying": 18.5581, "ForexSelling": 18.5915, "BanknoteBuying": 18.5451, "BanknoteSelling": 18.6194 } }...]]
ExchangeRate.TurkeyAdapter.AddOption<DataSetting>(option=>option.RateDigit=2);Console.WriteLine($"Base Currency :{ExchangeRate.TurkeyAdapter.BaseCurrency.Name}");Console.WriteLine("Rate :");ExchangeRate.TurkeyAdapter.GetRate(CurrencyCodes.EUR).Do(rate=>{Console.WriteLine($"{rate.TargetCurrency.Name} = "+rate.Money.Amount);});
Output
Base Currency : Turkish LiraRate :Euro = 18,68
Add appsetting.json to project
{"EasyExchangeRate": {"DataSetting": {"RateDigit":2 },"JsonSetting": {"DateFormat":"yyyy-MM-dd" } },//alternative"DataSetting": {"RateDigit":2 },"JsonSetting": {"DateFormat":"yyyy-MM-dd" }}
Code
varconfig=newConfigurationBuilder().AddJsonFile("appsettings.json",true,true).Build();ExchangeRate.EuropeAdapter.UseSection(config.GetSection("EasyExchangeRate")).Configure<DataSetting>().Configure<JsonSetting>();//Alternative usage//ExchangeRate.EuropeAdapter.Configure<DataSetting>(config.GetSection(nameof(DataSetting)));//ExchangeRate.EuropeAdapter.Configure<JsonSetting>(config.GetSection(nameof(JsonSetting)));Console.WriteLine($"Base Currency :{ExchangeRate.EuropeAdapter.BaseCurrency.Name}");Console.WriteLine("Rate :");ExchangeRate.EuropeAdapter.GetRate(CurrencyCodes.TRY).Do(rate=>{Console.WriteLine($"{rate.TargetCurrency.Name} = "+rate.Money.Amount);});
Output
Base Currency : EuroRate :Turkish Lira = 18,46
rate.ToString(opt=>{opt.Display=DisplayType.Name;opt.SymbolRotation=RotationType.Suffix;})
Output
19,8025 Turkish Lira
while(true){Console.WriteLine("Please write a number");StringOrNumberinput=Console.ReadLine();if(input.GetString().Text=="exit"){break;}StringOrNumberresult=EnglishNumberToWordsConverter.New().Convert(input);Console.WriteLine($"result :{result.GetString().Text}");Console.WriteLine("---------------------------------");}
icon :https://www.iconfinder.com/icons/8725865/exchange_icon
About
Some central bank exchange rates. (Australia,Canada,Denmark,Europe,Israel,Poland,Russia,Turkey)
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Uh oh!
There was an error while loading.Please reload this page.