DataSourceApi Üzerinden Sonucu Dictionary’ye Aktararak DataSource Çalıştırmak
Kullanılması Gereken Kütüphaneler
Aşağıdaki iki kütüphane projeye eklenmelidir.
using Bimser.CSP.DataSource.Api;
using <ProjeAdı>.DataSources;
Kullanım Örneği
Bu örnekte, DataSource çalıştırıldıktan sonra sorgudan gelen sonuç, Dictionary<string, object> tipinde bir List’e doldurulur. Böylece farklı veri tiplerinde (object) sonuç alınabilir.
Adım 1: DataSource’un Tanımlanması
Örnek olarak proje içerisinde, TestDataSource adıyla aşağıdaki sorguyu içeren bir DataSource tanımlanır.
SORGU : SELECT ID, USERNAME, FIRSTNAME, LASTNAME FROM OSUSERS
Adım 2: DataSource’u Çalıştıracak Kodların Hazırlanması
DataSourceApi sınıfının GetData isimli method’una aşağıda detayları anlatılan parametreler verilerek bir DataSource çalıştırılabilir.
ÖNEMLİ NOT: Çalıştırılacak DataSource, bu örneğin hazırlandığı projenin içerisinde bulunmalıdır. Bu senaryoda, dışarıdaki başka bir projedeki DataSource çalıştırılamaz.
Aşağıdaki kod bloğunda hangi kısmın nasıl yazılması gerektiği parçalar halinde anlatılmıştır.
Örnek Kod:
List<Dictionary<string, object>> allUsers = DataSourceApi.GetData<Dictionary<string, object>, TestDatasourceRequest>(
"TestDatasource",
new TestDatasourceRequest ()
{
PARAMETRE1 = “Değer1”,
PARAMETRE2 = “Değer2”
},
Context
);
DataSourceApi.GetData<Dictionary<string, object>, TestDatasourceRequest>( ” Dictionary<string, object>” yazan kısım, dönüşü bu şekide alacağımız için verilmiştir. “TestDatasourceRequest” kısmı için, “Request”e kadar olan kısımda, çalıştırılacak DataSource’un adı verilir. Yani DataSource’un adı ve Request kelimesi bitişik olarak yazılır.
"TestDatasource" : Çalıştırılacak DataSource’un adı verilir.
new TestDatasourceRequest () … : Sorguya gönderilecek parametreler verilir. Eğer parametre verilmeyecekse de aşağıdaki gibi bırakılmalıdır. new TestDatasourceRequest ()
Context: Burada context bilgisi verilir. Olduğu gibi bırakılabilir.
Listeden Sonucun Okunması
Aşağıdaki örnekle, sorgudan gelen sonucun nasıl okunabileceği anlatılmıştır. Farklı yöntemler de kullanılabilir.
if (allUsers.Count > 0 ) // sonuç geliyor demektir.
{
// Örnek olarak List’ten gelen ilk satır okunacaktır.
Dictionary<string, object> firstItem = allUsers[0];
int userID = Convert.ToInt32(firstItem["ID"]);
string userName = firstItem["USERNAME"].ToString();
string firstName = firstItem["FIRSTNAME"].ToString();
string lastName = firstItem["LASTNAME"].ToString();
}