.Net Core TCMB Exchange rate app sample
https://www.nuget.org/packages/OdeonTCMBLib/
PM>Install-Package OdeonTCMBLib -Version 1.0.0
Proje TCMB döviz kurları sayfasından günlük döviz kurlarını belirlenenkriterlere filtreler. Proje .Net Core 3.0 ile hazırlanmıştır
- Newtonsoft.Json
- NUnit
- System.Configuration.ConfigurationManager
Bu Kütüphane projeye dahil edilmiştir Ayrıca Package Manager Consoledan da referans eklenebilir.
Repository Adresi: https://github.com/tanersenel/ExpressionBuilderCore
Kurulum
PM> Install-Package ExpressionBuilderCore -Version 1.0.0
using OdeonTCMBLib;
using OdeonTCMBLib.Models;
using static OdeonTCMBLib.Enums.Types;
using ExpressionBuilder.Operations;
using ExpressionBuilder.Common;
TSTCMB lib = new TSTCMB(""); // class constructor içine authkey ekliyoruz.
//filtrelerimizi oluşturuyoruz
//yazdığımız alanın data tipine göre value göndermeliyiz. int ise int double ise double. CurrencyModel den data tiplerini görebilirsiniz
List<FilterModel> filters = new List<FilterModel>()
{
//Sadece CurrencyCode a göre filtreleme
new FilterModel()
{
FilterColumn =PropertyNames.CurrencyCode,
FilterValue1 = "EUR",
Condition = Operation.EqualTo,
Connector = Connector.And
},
//CurrencyCode USD "VEYA" EUR olanları filtreleme Group=true gönderilmelidir.
new FilterModel()
{
FilterColumn = PropertyNames.CurrencyCode,
FilterValue1 = "USD",
Condition = Operation.EqualTo, //CurrencyCode == "USD"
Connector = Connector.Or, // ||
FilterColumn2 = PropertyNames.CurrencyCode, //grupta kullanılacak ikinci alan
FilterValue2 = "EUR",
Condition2 = Operation.EqualTo,//CurrencyCode == "EUR"
Group = true ,//çıktısı (x=> (x.CurrencoCode =="USD" || x.CurrencyCode ==""EUR))
GroupConnector = Connector.And //bir sonraki filtre ile arasındaki Connector çıktısı: (x=> (x.CurrencoCode =="USD" || x.CurrencyCode ==""EUR)) &&
},
//Alış Fiyatı 6.5 dan büyük ve Satış fiyatı 7.2 den küçük olanları filtreleme
new FilterModel()
{
FilterColumn = PropertyNames.ForexBuying,
FilterValue1 = 6.5,
Condition = Operation.GreaterThan,
FilterColumn2 = PropertyNames.ForexSelling,
FilterValue2 = 7.2,
Condition2 = Operation.LessThan,
Connector= Connector.And,
Group=true
}
};
//sıralama kriterimizi ekliyoruz.
var sorting = new SortingModel()
{
SortingColumn = PropertyNames.CurrencyCode,
SortingType = SortingTypes.ASC
};
//kütüphanemize sorguyu gönderiyoruz.
//4 farklı tipte data response içerisinde yer alır.
var response = lib.GetTodayExhangeRate(sorting, filters);
if (response.Error.Error)
{
Console.WriteLine(response.Error.ErrorMessage);
}
else
{
var obj = response.ObjectResult;
var xml = response.XmlResult;
var json = response.JsonResult;
var csv = response.CsvResult;
}
- Basic Kullanım (Tek Para Birimine Göre Filtreleme)
List<FilterModel> filters = new List<FilterModel>()
{
new FilterModel()
{
FilterColumn =PropertyNames.CurrencyCode,
FilterValue1 = "EUR",
Condition = Operation.EqualTo,
Connector = Connector.And
}
};
- Kur Adının İlk harfine göre filtreleme
List<FilterModel> filters = new List<FilterModel>()
{
new FilterModel()
{
FilterColumn = PropertyNames.CurrencyName,
FilterValue1 = "U",
Condition = Operation.StartsWith
}
};
- CurrencyCode USD "VEYA" EUR olanları filtreleme Group=true gönderilmelidir.
List<FilterModel> filters = new List<FilterModel>()
{
new FilterModel()
{
FilterColumn = PropertyNames.CurrencyCode,
FilterValue1 = "USD",
Condition = Operation.EqualTo, //CurrencyCode == "USD"
Connector = Connector.Or, // ||
FilterColumn2 = PropertyNames.CurrencyCode, //grupta kullanılacak ikinci alan
FilterValue2 = "EUR",
Condition2 = Operation.EqualTo, //CurrencyCode == "EUR"
Group = true, //çıktısı (x=> (x.CurrencoCode =="USD" || x.CurrencyCode ==""EUR))
GroupConnector = Connector.And //bir sonraki filtre ile arasındaki Connector çıktısı: (x=> (x.CurrencoCode =="USD" || x.CurrencyCode ==""EUR)) &&
}
};
- Alış Fiyatına göre 6.0 ile 10.0 arasında olanları filtreleme
List<FilterModel> filters = new List<FilterModel>()
{
new FilterModel()
{
FilterColumn = PropertyNames.ForexBuying,
FilterValue1 = 6.0,
FilterValue2 = 10.0,
Condition = Operation.Between
}
};
- Alış Fiyatı 6.5 dan büyük ve Satış fiyatı 7.2 den küçük olanları filtreleme
List<FilterModel> filters = new List<FilterModel>()
{
new FilterModel()
{
FilterColumn = PropertyNames.ForexBuying,
FilterValue1 = 6.5,
Condition = Operation.GreaterThan,
FilterColumn2 = PropertyNames.ForexSelling,
FilterValue2 = 7.2,
Condition2 = Operation.LessThan,
Connector= Connector.And,
Group=true
}
};
- Default
- EqualTo
- NotEqualTo
- Text
- Contains
- DoesNotContain
- EndsWith
- EqualTo
- IsEmpty
- IsNotEmpty
- IsNotNull
- IsNotNullNorWhiteSpace
- IsNull
- IsNullOrWhiteSpace
- NotEqualTo
- StartsWith
- Number
- Between
- EqualTo
- GreaterThan
- GreaterThanOrEqualTo
- LessThan
- LessThanOrEqualTo
- NotEqualTo
- Boolean
- EqualTo
- NotEqualTo
- Date
- Between
- EqualTo
- GreaterThan
- GreaterThanOrEqualTo
- LessThan
- LessThanOrEqualTo
- NotEqualTo
MIT