Member 13701048 Ответов: 1

Обрабатывать максимальные, нулевые значения в механизме правил C#


Как обрабатывать максимальные, нулевые значения в механизме правил.
Предположим, что если мое первое значение элемента xml равно null и его целое число, то как я могу сравнить элемент xml с ненулевым значением?

Что я уже пробовал:

я попробовал обратиться, но это не дало мне никакого ответа

RickZeeland

Ой, кажется, мой вопрос был опубликован как решение, извините за это !
Мой вопрос был: о каком механизме правил мы здесь говорим ?
Пожалуйста, ответьте, используя кнопку комментария ...

Member 13701048

это механизм правил c#, где вы можете получить значения на основе заданных формул и входных данных.
Вы можете увидеть его по следующей ссылке

Dotnet Ограничителя Простой Механизм Правил[^]

Member 13701048

пожалуйста, проверьте следующую ссылку
https://www.codeproject.com/Tips/1001461/Dotnet-Simple-Rule-Engine

1 Ответов

Рейтинг:
10

RickZeeland

Вы могли бы сделать это вот так:

public void ExecuteTaxRules()
{
    XmlDocument rules = new XmlDocument();

    string directory = AppDomain.CurrentDomain.BaseDirectory + @"\TaxCalculator.xml";

    rules.Load(directory);
    XmlDocument model = new XmlDocument();

    model.LoadXml(@"<Employee><GrossSalary>900001</GrossSalary>
    <HRA>50000</HRA><Tax></Tax><NetSalary>
    </NetSalary></Employee>");

    ROM rom = Compiler.Compile(rules);
    rom.AddModel("Employee", model);

    int max = 900000;
    string grossSalary = model["Employee"]["GrossSalary"].InnerText;

    int grossInt;
    int.TryParse(grossSalary, out grossInt);

    if (string.IsNullOrEmpty(grossSalary))
    {
        Console.WriteLine("Error: GrossSalary is null or empty !");
    }
    else if (grossInt > max)
    {
        Console.WriteLine("Error: GrossSalary maximum exceeded !");
    }
    else
    {
        rom.Evaluate();
        var tax = model["Employee"]["Tax"].InnerText;
        var NetSalary = model["Employee"]["NetSalary"].InnerText;
        var message = string.Format("Tax: {0} and Net take home salary :{1}", tax, NetSalary);
        Console.Write(message);
    }

    Console.Read();
}