Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icon

EasyExchangeRate

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

Adapter List

  • TurkeyAdapter
  • EuropeAdapter
  • DenmarkAdapter
  • IsraelAdapter
  • RussiaAdapter
  • AustraliaAdapter
  • PolandAdapter
  • CanadaAdapter

Usage

*Get Currencies

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

*Get Rate

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

*Get Rates

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

*Convert

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$

*Operators

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

*Sum Two Rate

 ...

*Rate To Word / Number To Word

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

*Word To Number

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

*Humanizer

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

*JSON

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  }}

*Date

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

*DateRange

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      }    }...]]

*Setting

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

*Configuration

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

*ToString Option

rate.ToString(opt=>{opt.Display=DisplayType.Name;opt.SymbolRotation=RotationType.Suffix;})

Output

19,8025 Turkish Lira

*Number String Exchange

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

Releases

No releases published

[8]ページ先頭

©2009-2025 Movatter.jp