Kullanıcı Kılavuzu

C# Veri Kaynağı Ekleme Kullanıcı Kılavuzu

23/9/26
C# Veri Kaynağı Ekleme Kullanıcı Kılavuzu

C# Nedir?

Kuika platformunda uygulama geliştirirken çeşitli veri kaynakları kullanabilir ve Custom Action oluşturabilirsiniz. Bu işlemlerden biri de C# dilini kullanarak gerçekleştirilebilir. C#, modern uygulama geliştirme sürecinde yaygın olarak kullanılan bir programlama dilidir ve Kuika platformunda güçlü bir veri kaynağı entegrasyon aracı olarak kullanılabilir. Kuika, C# fonksiyonlarını .NET 10 ve C# ile çalıştırır. Bu eğitim içeriğinde, C# ile veri tabanlarına bağlanmayı, nesne yönelimli programlama ilkelerini uygulamayı ve performans odaklı uygulamalar geliştirmeyi öğreneceksiniz.

‍

C# ile Veri Kaynağı Bağlantısı ve Custom Action Oluşturun

  1. Kuika platformuna giriş yapın ve Apps ekranından çalışacağınız projeyi açın.
  2. Üst navigasyon çubuğundaki Datasources simgesine tıklayın.
  3. Datasources ana ekranındaki Create a Function kartına tıklayın ve açılan listeden C# Functions seçeneğini seçin. Aynı listeye sol paneldeki Sources başlığının yanındaki + simgesinden de ulaşabilirsiniz.
  1. Açılan formda:
    • Name: Veri kaynağı için bir ad girin.
    • Template: Kullanmak istediğiniz şablonu seçin. Varsayılan olarak Default C# Function seçili gelir. (Diğer şablonlar için bkz. 4–9. bölümler)
  2. CREATE butonuna tıklayarak veri kaynağını oluşturun.

C# Modülü Anatomisi

C# veri kaynağını oluşturduktan sonra C# editörü açılır. Editörde şu alanlar yer alır:

Aksiyon isimlendirme alanı: Sol üstte veri kaynağının adı görünür. Yanındaki kalem simgesiyle adı güncelleyebilirsiniz. İsimlendirmede İngilizce karakterleri ve ayrıca "-" veya "_" özel karakterlerini kullanabilirsiniz.

Template alanı: Sağ üstteki açılır listeden ön tanımlı şablonlar arasında geçiş yapabilirsiniz:

  • Default C# Function
  • Custom Authentication Provider
  • Custom Authorization Provider
  • Custom Verification Code Sender Provider
  • Custom Connection String Provider
  • Custom External Token Validator Provider
  • Custom Mail Provider
Şablon değiştirdiğinizde editördeki kod seçtiğiniz şablonun koduyla değişir. Daha önce yazdığınız kod silinir.

Editör araç çubuğu: Geri al/yinele, kopyala/yapıştır, kodu biçimlendirme (Tidy Up), satır kaydırma ve yazı boyutu ayarı seçeneklerini içerir. Sağ tarafta kodun geçerli olup olmadığını gösteren onay simgesi ve imlecin konumu (örneğin "Ln 18, Col 1") görüntülenir.

Tidy Up: Araç çubuğundaki biçimlendirme butonuna tıklayarak kodunuzu otomatik olarak hizalayıp düzenleyebilirsiniz. Böylece kodun okunabilirliği artar.

External Libraries (BETA): Aksiyonunuzda kullanmak istediğiniz NuGet paketlerini bu alandan ekleyebilirsiniz. Butona tıkladığınızda iki sekmeli bir panel açılır:

  • Installed: Veri kaynağına eklenmiş kütüphaneleri listeler. Henüz kütüphane eklenmemişse Browse registry butonuyla paket kayıt defterine geçebilirsiniz.
  • Browse: Paket kayıt defterindeki kütüphaneleri listeler. Search packages alanından arama yapabilir, her paketin güncel sürümünü görebilir ve Add butonuyla paketi ekleyebilirsiniz. Örneğin Newtonsoft.Json, System.Text.Json, Serilog gibi popüler kütüphaneler desteklenmektedir.

Eklediğiniz kütüphaneler C# kodunuz içinde kullanılabilir hale gelir. Kütüphane sürümlerine dikkat etmek, uyumluluk açısından önemlidir.

Kuika AI: Editörün sağındaki panelden yapay zeka desteğiyle fonksiyon oluşturabilirsiniz. (Bkz. 3. bölüm)

Test Console: Editörün altındaki TEST CONSOLE alanını genişleterek fonksiyonunuzu test edebilirsiniz.

Fonksiyonların kaydedilmesi: Fonksiyonları oluşturduktan sonra sağ üstteki CREATE butonuna tıklayarak kaydedebilirsiniz.

Kuika AI ile C# Fonksiyonları Oluşturma

  1. Editörün sağındaki Kuika AI panelinin altındaki Type here alanına oluşturmak istediğiniz fonksiyonu tanımlayın (örneğin "Hello world rotating function").
  2. Gönder butonuna tıklayın.
  3. Kuika AI tarafından oluşturulan kodu kopyalayarak C# editörünüze ekleyin.

Yapay Zeka Asistanı ile C# Fonksiyonları Oluşturun

  1. Generate with AI seçeneğini kullanarak AI destekli chat alanını açın.
  2. Fonksiyon tanımı yapın ("Hello world rotating function" vb.).
  3. AI tarafından oluşturulan kodu kopyalayarak C# editörünüze ekleyin.

Custom Authentication Provider

Custom Authentication Provider, özelleştirilmiş kimlik doğrulama sistemleri oluşturmanıza olanak tanır.

  1. C# Functions'ı seçin ve bir ad girin.
  2. Template alanından Custom Authentication Provider şablonunu seçin.
  3. CREATE butonuna tıklayın.

Şablondaki sınıf, ICustomAuthentication arayüzünü uygular ve kimlik doğrulama işlevlerini tanımlar. Aşağıdaki metotlar hazır olarak sunulmaktadır:

Login Metodu: Kullanıcıların giriş yapmasını sağlar. İki ayrı sürümü bulunur:

  • Kullanıcı adı ve şifre ile giriş yapma: Login(string username, string password)
  • Kullanıcı adı, dışsal bir token ve yenileme token ile giriş yapma

Metot, giriş başarılı olduğunda kullanıcı bilgilerini içeren bir Token nesnesi döndürür. Bu nesnede FirstName, LastName, TokenString, RefreshToken ve Username alanları bulunur. Kullanıcının giriş işlemi doğrulanmalıdır; bu doğrulama REST API veya özel bir veritabanı üzerinden yapılabilir.

Refresh Token Metodu: Süresi dolmuş bir token'ı yenilemek için kullanılır.

Find Manager Metodu: Bir kullanıcının yöneticisini bulmak için kullanılır. Process Automation içinde sıklıkla kullanılır.

Logout Metodu: Kullanıcının sistemden çıkış yapmasını sağlar. Bu metodun dönüş değeri yoktur.

Kuika'nın varsayılan davranışını korumak istediğiniz metotlarda return null kullanın. Özel bir giriş mantığı uygulamak istiyorsanız, şablondaki yorum satırı hâlindeki return new Token() kodunu açın, alan değerlerini düzenleyin ve return null; satırını kaldırın.

Custom Authorization Provider

Custom Authorization Provider, kullanıcıların uygulama içindeki rollerini belirlemek için kullanılır.

  1. C# Functions'ı seçin ve bir ad girin.
  2. Template alanından Custom Authorization Provider şablonunu seçin.
  3. CREATE butonuna tıklayın.

Şablondaki sınıf, ICustomAuthorization arayüzünü uygular ve GetRoles metodunu içerir.

GetRoles Metodu: Kullanıcının uygulama içinde hangi rollere sahip olduğunu List<string> olarak döndürür.

Parametreler:

  • appId (Guid): Uygulamanın benzersiz kimliği
  • appName (string): Uygulamanın adı
  • screenId (Guid): Ekranın benzersiz kimliği
  • screenName (string): Ekranın adı
  • userName (string): Kullanıcının e-posta adresi
Özel yetkilendirme uygulanmayacaksa return null kullanılmalıdır. Bu durumda varsayılan sistem davranışı korunur. Özel roller döndürmek istiyorsanız, şablondaki yorum satırı hâlindeki return new List<string>() { "CustomRole1", "CustomRole2" }; kodunu açın, rol adlarını düzenleyin ve return null; satırını kaldırın.

Bu yapı, belirli ekranlarda veya uygulama bölümlerinde çalışan kullanıcılar için özelleştirilmiş roller tanımlamak amacıyla kullanılabilir.

Custom Verification Code Sender Provider

Custom Verification Code Sender Provider, Kuika'nın ürettiği doğrulama kodlarını kullanıcılara kendi belirlediğiniz kanal üzerinden (SMS, e-posta, push bildirimi vb.) göndermenizi sağlar.

  1. C# Functions'ı seçin ve bir ad girin.
  2. Template alanından Custom Verification Code Sender Provider şablonunu seçin.
  3. CREATE butonuna tıklayın.

Şablondaki sınıf, ICustomVerificationCodeSender arayüzünü uygular ve SendVerificationCode metodunu içerir.

SendVerificationCode Metodu: İki parametre alır:

  • user (UserInfoModel): Kullanıcı bilgileri. Bu nesne üzerinden şu alanlara erişebilirsiniz:
    • user.Username: Kullanıcının e-posta adresi
    • user.FirstName: Kullanıcının adı
    • user.LastName: Kullanıcının soyadı
    • user.PhoneNumber: Kullanıcının telefon numarası
  • verificationcode (string): Kuika tarafından rastgele üretilen doğrulama kodu

Metodun dönüş değeri, kodu kimin göndereceğini belirler:

  • return false: Kuika, doğrulama kodunu kullanıcıya kendisi e-posta ile gönderir.
  • return true: Kuika kodu göndermez; kodun bu provider tarafından gönderildiğini varsayar.

Örneğin doğrulama kodunu SMS ile göndermek istiyorsanız, metot içinde user.PhoneNumber ve verificationcode değerlerini kullanarak SMS servisinizi çağırın ve gönderim başarılı olduğunda true döndürün.

Custom Connection String Provider

Custom Connection String Provider, uygulamanızın farklı ortamlara ya da sistemlere bağlanmasını sağlayan özelleştirilmiş bağlantı cümlelerini (Connection String) tanımlamak için kullanılır. Bu yapı sayesinde uygulamanızı ortamdan bağımsız (development, staging, production) şekilde yapılandırabilir veya farklı veritabanlarına dinamik olarak yönlendirebilirsiniz.

  1. C# Functions'ı seçin ve bir ad girin.
  2. Template alanından Custom Connection String Provider şablonunu seçin.
  3. CREATE butonuna tıklayın.

Şablondaki sınıf, ICustomConnectionString arayüzünü uygular ve iki metot içerir:

  • GetConnectionString: Uygulamanın kullanacağı bağlantı cümlesini döndürür.
  • Custom Workflow Connection String: Workflow işlemlerinde kullanılacak bağlantı cümlesini döndürür.

Her iki metot da şu parametreleri alır:

  • userId: Kullanıcının KUser tablosundaki Id değeri
  • username: İstekte bir token varsa ve token'ın claim'lerinde UserName değeri bulunuyorsa bu değer; token yoksa ve istek gövdesinde UserName adlı bir alan varsa bu alanın değeri

Custom Connection String Provider; aynı uygulamanın farklı müşteriler için ayrı veritabanlarına bağlanması, geliştirme ve canlı sistemlerin ayrıştırılması ve çoklu tenant destekli sistemlerde dinamik bağlantı değişimi için kullanılır.

Fonksiyonun geri dönüşü:

  • return null: Kuika'nın varsayılan bağlantısı kullanılır.
  • return "connection_string": Döndürülen bağlantı cümlesi (örneğin SQL Server, PostgreSQL vb.) kullanılır. Kullanıcıya, uygulamaya veya tenant'a özel bağlantılar döndürmek mümkündür.
Dönüş değeri hassas bilgiler içerdiğinden, bağlantı cümlesi güvenli biçimde oluşturulmalı ve loglanmamalıdır.

Custom External Token Validator Provider

Custom External Token Validator Provider, harici kimlik sağlayıcılar (SSO, harici auth servisleri, mobil token servisleri vb.) tarafından üretilen token'ların Kuika içinde doğrulanmasını ve yorumlanmasını sağlar. Bu provider sayesinde Kuika dışından gelen erişim token'ları kontrol edilerek kullanıcı bilgileri güvenli şekilde sisteme aktarılır.

Şu durumlarda kullanılabilir:

  • Uygulama harici bir kimlik doğrulama sistemi (SSO, OAuth tabanlı servisler, özel auth servisleri) kullanıyorsa,
  • Kullanıcılar Kuika'ya kullanıcı adı ve şifre yerine harici bir token ile giriş yapıyorsa,
  • Mobil uygulama, gateway veya üçüncü parti sistemlerden gelen token'ların geçerliliği kontrol edilmek isteniyorsa.

Oluşturma adımları:

  1. C# Functions'ı seçin ve bir ad girin.
  2. Template alanından Custom External Token Validator Provider şablonunu seçin.
  3. CREATE butonuna tıklayın.

Custom External Token Validator Sınıfı

Şablondaki sınıf, IExternalTokenValidator arayüzünü uygular ve Kuika'ya gelen harici token'ın doğrulama sürecini yönetir.

TokenProviderType Özelliği

public EExternalTokenProviderTypes TokenProviderType =>    EExternalTokenProviderTypes.External1;

Bu özellik, validator'ın hangi "slot"a bağlı olduğunu belirtir. External1 ile External5 arasında değer alabilir; varsayılan değer External1'dir.

Bir giriş isteği bu validator'a yalnızca aynı slotu belirttiğinde ulaşır. Slot iki şekilde belirtilir:

  • /auth/loginwithtoken isteğinin gövdesindeki providerType alanı ile,
  • Uygulama MFE olarak gömüldüğünde external_provider_type="External1" özniteliği ile.
İkinci bir harici token validator eklerseniz, ona hem farklı bir slot (örneğin External2) hem de farklı bir sınıf adı verin. Tüm validator'lar aynı Kuika.ThirdPartyApisCollection namespace'i içinde oluşturulduğundan, aynı adlı iki sınıf derlenemez.

Validate Metodu

public ExternalTokenResult Validate(ExternalTokenRequest request)

Kuika'ya gelen harici token'ın geçerliliğini kontrol etmek ve doğrulama sonucunda kullanıcı bilgilerini döndürmek için kullanılır.

Görevleri:

  • Gelen TokenString değerinin geçerliliğini doğrulamak
  • Token'a ait kullanıcıyı belirlemek
  • Kuika'nın kullanacağı kimlik bilgilerini döndürmek

Örnek dönüş:

return new ExternalTokenResult(){    RefreshToken = request.RefreshToken,    Token = request.TokenString,    UserName = request.Username,    Name = null,    Surname = null,    PhoneNumber = null};
null dönen alanlar Kuika tarafından geçersiz kabul edilir; null olmayan alanlar Kuika'da aktif olarak kullanılır.

RefreshToken Metodu

public ExternalTokenResult RefreshToken(ExternalRefreshTokenRequest request)

Süresi dolmuş veya yenilenmesi gereken token'ların refresh token üzerinden güncellenmesini sağlar.

Görevleri:

  • Refresh token'ın geçerliliğini doğrulamak
  • Yeni veya güncellenmiş token bilgilerini Kuika'ya döndürmek

Örnek dönüş:

return new ExternalTokenResult(){    RefreshToken = request.RefreshToken,    Token = request.TokenString};

Custom Mail Provider

Custom Mail Provider, uygulamanızın e-posta gönderim sürecini kendi belirlediğiniz bir altyapı veya üçüncü parti servis üzerinden yapmanızı sağlar. Bu yapı sayesinde Kuika'nın varsayılan e-posta gönderim mekanizması yerine kendi SMTP sunucunuzu, bir e-posta gönderim API'sini (örneğin SendGrid, Mailgun, Amazon SES) veya kurum içi bir mail altyapısını devreye alabilirsiniz.

Şu senaryolarda kullanılabilir:

  • Uygulamanın, Kuika'nın varsayılan mail sağlayıcısı yerine kurumun kendi SMTP sunucusunu kullanması gerektiğinde,
  • E-posta gönderimlerinin üçüncü parti bir servis üzerinden yapılması istendiğinde,
  • Gönderim mantığının (örneğin loglama, ek doğrulama) özelleştirilmesi gerektiğinde,
  • Farklı ortamlar veya farklı tenant'lar için farklı mail sağlayıcılarının kullanılması gerektiğinde.

Oluşturma adımları:

  1. C# Functions'ı seçin ve bir ad girin.
  2. Template alanından Custom Mail Provider şablonunu seçin.
  3. CREATE butonuna tıklayın.

Custom Mail Provider Sınıfı

Şablondaki CustomMailClient sınıfı, ICustomMailClient arayüzünü uygular ve uygulama içinden tetiklenen e-posta gönderim isteklerini karşılar.

request parametresi: Gönderilmeye hazır e-postayı içerir:

  • Subject: E-postanın konusu
  • Body: Gönderime hazır HTML içerik. Bildirim şablonları çözümlenmiş ve @parametreler yerine konmuş olarak gelir.
  • Sender: Gönderen adresi
  • Receivers, Cc, Bcc: Alıcı adresleri
  • Attachments: Ekler
  • InlineImages: Gövdeye gömülü görseller

Dikkat edilmesi gerekenler:

  • Sender boş gelebilir. Kuika'nın yerleşik sağlayıcıları bu durumda kendi SMTP/AWS ayarlarındaki From adresini kullanır; ancak özel sağlayıcı seçiliyken bu ayarlar okunmaz. Bu nedenle kendi varsayılan gönderen adresinizi kod içinde tanımlayın.
  • Cc ve Bcc ham metin olarak gelir ve "," veya ";" ile ayrılmış birden fazla adres içerebilir.
  • Attachments, dosya adı ve base64 içerik (FileContentBase64) olarak gelir. Eklerin iletilip iletilmediği kontrol edilmez; eksiz teslim edilen bir e-posta da başarılı sayılır. API'nizin boyut sınırlarını da kendiniz kontrol etmelisiniz.
  • InlineImages, gövdede "cid:ContentId" biçiminde referans verilen görsellerdir. API'niz inline görselleri desteklemiyorsa görselleri yükleyip cid referanslarını URL'lerle değiştirmeniz gerekir; aksi hâlde görseller kırık görünür.

Dönüş değeri: Success = true, e-postanın teslim edildiğini değil, kabul edildiğini ifade eder. Bu değeri yalnızca API'niz e-postayı onayladıktan sonra (2xx veya kuyruğa alındıysa 202) döndürün. Aksi hâlde platform, hiç gönderilmemiş olabilecek bir e-postayı başarılı olarak raporlar. Sonradan oluşan geri dönmeler (bounce) uygulamaya bildirilmez.

Mail sağlayıcısına ait API anahtarı, kullanıcı adı, şifre gibi hassas bilgiler kod içinde güvenli biçimde saklanmalı ve loglanmamalıdır.

C# Örneği

Bu örnekte, iki sayıyı toplayan bir metot içeren Calculator adında bir sınıf oluşturulmaktadır:

using System;

namespace Kuika.ThirdPartyApisCollection
{
    public class Calculator
    {
        public static int Add(int a, int b)
        {
            return a + b;
        }
    }
}

using System: C#'ta temel sistem fonksiyonlarını kullanmak için gerekli olan System kütüphanesini ekler.

namespace Kuika.ThirdPartyApisCollection: Kuika'daki C# fonksiyonlarının bulunduğu namespace'tir. Şablonlarda varsayılan olarak gelir; değiştirilmemelidir.

Calculator sınıfı: Matematiksel işlemleri gerçekleştirmek için oluşturulmuştur.

Add metodu: public static int Add(int a, int b) ifadesi iki tamsayı (int) parametre alır. return a + b; ifadesi bu iki değerin toplamını geri döndürür. Metot, Kuika şablonlarındaki gibi public static olarak tanımlanmıştır.

Bu örnek, C# dilinde bir sınıf oluşturma, metot tanımlama ve basit bir hesaplama işlemi yapma sürecini göstermektedir.

Sözlük

No items found.

Alt Başlıklar