Örnek Kodlar
Servis Kurulumu
Mevcut Servis dosyalarını IIS e yüklenir. IIS’in Gelişmiş Ayarlarından Uygulama Havuzu “ASP.NET v4.0” olarak seçilir.
Web.Config Ayarları
Web.config dosyasında Servisin Live Server ile bağlantısı için gerekli bilgilerin girildiği yer mevcuttur. Bunlar;
ServerIp anahtarının değeri Live Server uygulamasının çalıştığı server IP si, ServerPort ise Live Server uygulamasının çalıştığı port numarasını belirler.
Genel Yapılar
Class
Tüm class larda bazı sabit alanlar mevcuttur. Bu alanlara göre işlem yapılır.
SetDelete: Set ettiğimiz satırı veri tabanından siler.
ReturnObject
Yaptığınız sorgular sonucu size denen nesnesin genel çatısını oluşturur. Bu çatı şunları içerir.
ReturnCode: Sayısal alandır. 200 den 400 e kadar olumlu 400 den 600 e kadar olumsuz kodlardır.
ReturnMessage: Sayısal kodların açıklamasıdır. ReturnDate: İşlemin yapıldığı tarihtir.
Return: Dönen Veridir. Dizi şeklindedir.
Session: Oturum Kodudur.
ErrorMessages: İşlemden dönen hatalardır.
SucceedMessages: İşlemden dönen olumlu mesajlardır.
PostObject
PostData: Gönderilecek data dizisidir.
Session: Oturum Bilgisidir.
ReplaceAll: Kayıtların değiştirilip Değiştirilmeyeceğini belirler. Eğer False ise sadece null olmayan kayıtlardan farklı olanları marge eder, True ise tüm kayıtları birbirinden farklıyla değiştirir.
GetWhereObject
Session: Oturum Bilgisidir.
Where: Bir class listesidir. Class yapısı aşağıdadır.
TableName: Arama yapılacak tablonun adı.
AliasName: --(null olacak veya yazılmayacak)
FieldName: Arama yapılacak alan adı.
Value : Arama yapılacak değer.(Eğer değer tek ise)
Condition:
Koşulu belirler. Bunlar
“None”
: Geçersiz değer.
“Equal”
: Eşit.
“NotEqual”
: Eşit değil.
“Greater”
: Büyüktür.
“GreaterAndEqual”
: Büyük veya eşit.
“Less”
: Küçük.
“LessAndEqual”
: Küçük veya eşit.
“IsNull”
: Null değeri.
“IsNotNull”
: Null değil.
“Like”
: Benzer.
“NotLike”
: Benzemeyen.
“In”
: Verilen değerler içinde.
“NotIn”
: Verilen değerler içinde olmayan.
“Between”
: Verilen aralık arasında.
“NotBetween”: Verilen aralık dışında.
InnerConditions: İçi içe koşullar sunmak istediğinizde kullanabileceğiniz bir dizi.
Concator:
iç içe koşullarda kullanabileceğiniz veya normal koşullarda kullanabileceğiniz şartlar.
“None”
: Tanımsız değer.
“And”
: Ve Operatörü.
“Or”
: Veya Operatörü.
“Not”: Hayır/Tersi Operatörü.
RangeValues: bir aralık veya bir dizi vereceğimiz zaman doldurmamız gereken alan.
Login
Diğer tüm servislerde işlem yapabilmek için bir Guid olarak bir Oturum koduna sahip olması lazım.
//Session
Guid Session = Guid.Empty;
//Login Test
using (LoginServiceClient lgn = new LoginServiceClient())
{
//Bağlan
lgn.Open();
//Login Ol
ReturnLogin rtn = lgn.LogIn(new Login.Login() { CompanyCode = "00", UserCode = "demo", UserPassword = "demo", CompanyPassword = "" });
if (rtn.ReturnCode < 400)
{
Session = rtn.Session;
}
//Login Bağlantı Testi
rtn = lgn.Test();
//Login Oturumunu Test Et
rtn = lgn.CheckSession(Session);
//Logout Yap
rtn = lgn.LogOut(Session);
// Bağlantıyı Sonlandır
lgn.Close();
}
Kart Getirme / Silme / Ekleme
using (GLModuleServiceClient client = new GLModuleServiceClient())
{
client.Open();
//Tüm Listeyi getir
var list = client.GetAllGLAccountBO(Session);
// AccountCode=102.00.04 Olan kayıtları getir.
GetWhereObject tmpWhere = new GetWhereObject();
tmpWhere.Session = Session;
tmpWhere.Where = new WhereClass[] { new WhereClass() { FieldName = "AccountCode", Value = "102.00.04", Concator = string.Empty, Condition = "Equal", TableName = "Erp_GLAccount" } };
var list1 = client.GetAllWhereGLAccountBO(tmpWhere);
// İlk Kayıdı Al
Erp_GLAccount tmpGLAccount = list1.Return[0];
//Değişiklik yap
tmpGLAccount.AccountName = tmpGLAccount.AccountName.Substring(0,7) + "_+"+new Random().Next(100,999).ToString();
//Postobject Oluştur
PostGLAccountBO postObject = new PostGLAccountBO();
postObject.Session = Session;
postObject.PostData = new Erp_GLAccount[] { tmpGLAccount };
//Değişiklikleri gönder.
var list2 = client.PostAllGLAccountBO(postObject);
//Yeni bir Kayıt oluşturuluyor
Erp_GLAccount tmpAddGLAccount = new Erp_GLAccount();
tmpAddGLAccount.AccountCode = "102.00.99";
tmpAddGLAccount.AccountName = "Örnek A.S.";
tmpAddGLAccount.AccountType = 1;
tmpAddGLAccount.CDType = 3;
tmpAddGLAccount.ForexId = null;
tmpAddGLAccount.InUse = true;
tmpAddGLAccount.SpecialCode = "deneme";
//Kayıt için PostObject oluşturuluyor.
PostGLAccountBO postAddObject = new PostGLAccountBO();
postObject.Session = Session;
postObject.PostData = new Erp_GLAccount[] { tmpAddGLAccount };
//Yeni Kayıt Gönderiliyor.
var list3 = client.PostAllGLAccountBO(postObject);
//Sorgu Objesi oluşturuyor
GetWhereObject tmpAddWhere = new GetWhereObject();
tmpAddWhere.Session = Session;
tmpAddWhere.Where = new WhereClass[] { new WhereClass() { FieldName = "AccountCode", Value = tmpAddGLAccount.AccountCode, Concator = string.Empty, Condition = "Equal", TableName = "Erp_GLAccount" } };
//Sorgu Sonucu Geliyor
var list4 = client.GetAllWhereGLAccountBO(tmpAddWhere);
//Sorgu sonucu gelen değerin Set Delete alanı set ediliyor
Erp_GLAccount deleteObject = list4.Return[0];
deleteObject.SetDelete = true;
//Silme için PostObject oluşturuyor
var postDeleteObject = new PostGLAccountBO();
postDeleteObject.Session = Session;
postDeleteObject.PostData = new Erp_GLAccount[] { deleteObject };
//Deger siliniyor ve silme sonucu okunuyor.
var list5 = client.PostAllGLAccountBO(postDeleteObject);
client.Close();
}
Sorgu İşlemleri
using (ServiceReference1.QueryClient cli = new QueryClient())
{
cli.Open();
System.Data.DataSet ds = new System.Data.DataSet();
ds = cli.GetDataTables(Session, "Select * from Meta_User");
string get = cli.ExecuteScalar(Session, "select * from Meta_User");
int i = cli.ExecuteNonQuery(Session, "Update Meta_User set Password=Password");
cli.Close();
}