- 23 Jun 2023
- 1 Minute to read
- DarkLight
Metot içerisinde Kural Motoru Kullanımı
- Updated on 23 Jun 2023
- 1 Minute to read
- DarkLight
Metot İçerisinde Kural Motoru Kullanımı
Kural motorunu kullanabilmek için öncelikle metot içerisine ilgili kütüphanelerin eklenmesi gerekir.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Paperwork.Methods;
using Paperwork.Library;
using System.Data;
using ContentServer;
using Paperwork.Types;
using System.Reflection;
using System.Globalization;
using System.Collections.ObjectModel;
using System.IO;
using System.Xml;
Örnekleyebilmek için bir kural motoru tablosu hazırlıyoruz :
Kural motoru fonksiyonumuz da şu şekilde :
Metot içerisinde kural motorunu çağırmak için gerekli yapı şu şekilde:
AssemblyItem ai = server.rAssembly.GetAssembly("MainRule.dll", "CURRENT", "RULE.NET");
Assembly assembly = Assembly.Load(ai.Data);
dynamic ruleEngine = assembly.CreateInstance("Paperwork.Library.MainRule");
Referans kütüphanelerimiz ekleyip bu yapıyı kurduktan sonra ruleEngine. İle kural motorumuz içindeki değişkenler, listeler, tablolar ve fonksiyonlara ulaşabilir oluyoruz. Yukarıda gördüğünüz kural motoru tablosunun satır ve sütunlarına ulaşmak istersek şu şekilde çağırabiliriz:
var paperRuleEngine = ruleEngine.tablePaperWork.Rows[2][1];
var workRuleEngine = ruleEngine.tablePaperWork.Rows[0][1];
ruleEngine.tablePaperWork.Rows bize 2 boyutlu bir dizi dönecektir. Vereceğimiz ilk indeks satır(row), ikinci indeks ise sütun(column) değerlerini ifade eder. Satırlar(row) için her zaman indeks vermemiz gerekir fakat sütunlar(column) için isim vererek de çağırabiliriz;
var paperProduct = ruleEngine.tablePaperWork.Rows[2]["Product"];
var workProduct = ruleEngine.tablePaperWork.Rows[0]["Product"];
Metod içinde çağırılmış kural motorunun örneğini tek görsel ile şu şekilde anlayabiliriz.