DataSourceApi Üzerinden Sonucu Bir Sınıfa 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 sonucu bir class içerisine aktarıp oradan nasıl okunabileceği gösterilmektedir.
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: Kolonları Karşılayacak Sınıfın Tanımlanması
Bu sorgudan gelecek kolonları karşılayacak sınıf tanımlanır.
public class User
{
public int ID {get;set;}
public string USERNAME {get;set;}
public string FIRSTNAME {get;set;}
public string LASTNAME {get;set;}
}
Adım 3: 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<User> allUsers = DataSourceApi.GetData<User, TestDatasourceRequest>(
"TestDatasource",
new TestDatasourceRequest ()
{
PARAMETRE1 = “Değer1”,
PARAMETRE2 = “Değer2”
},
Context
);
List
<User>
allUsers: Bu kısımda, Adım2’de tanımlanan sınıfın ismi List’e tip olarak verilir.DataSourceApi.GetData<User, TestDatasourceRequest>( :
"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.
{
LogExtension.Log(allUsers[0].ID, Session);
LogExtension.Log(allUsers[0].USERNAME, Session);
LogExtension.Log(allUsers[0].FIRSTNAME, Session);
LogExtension.Log(allUsers[0].LASTNAME, Session);
}