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# 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:

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:


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

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

Ş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:
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.
Custom Authorization Provider, kullanıcıların uygulama içindeki rollerini belirlemek için kullanılır.

Ş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:
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, 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.

Şablondaki sınıf, ICustomVerificationCodeSender arayüzünü uygular ve SendVerificationCode metodunu içerir.
SendVerificationCode Metodu: İki parametre alır:
Metodun dönüş değeri, kodu kimin göndereceğini belirler:
Ö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, 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.

Şablondaki sınıf, ICustomConnectionString arayüzünü uygular ve iki metot içerir:
Her iki metot da şu parametreleri alır:
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üşü:
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:
Oluşturma adımları:

Şablondaki sınıf, IExternalTokenValidator arayüzünü uygular ve Kuika'ya gelen harici token'ın doğrulama sürecini yönetir.
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:
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:
Örnek dönüş:
return new ExternalTokenResult(){ RefreshToken = request.RefreshToken, Token = request.TokenString, UserName = request.Username, Name = null, Surname = null, PhoneNumber = null};public ExternalTokenResult RefreshToken(ExternalRefreshTokenRequest request)
Süresi dolmuş veya yenilenmesi gereken token'ların refresh token üzerinden güncellenmesini sağlar.
Görevleri:
Örnek dönüş:
return new ExternalTokenResult(){ RefreshToken = request.RefreshToken, Token = request.TokenString};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:
Oluşturma adımları:

Ş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:
Dikkat edilmesi gerekenler:
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.
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.