DotNetRuleEngine Save

.net standard v2

Project README

DotNetRuleEngine allows you to write your code as series of rules to keep your code clean and structured. Supports both synchronous and asynchronous patterns and it adheres to S.O.L.I.D design principles.

A few reasons use DotNetRuleEngine

  • Adheres to S.O.L.I.D
  • Testable code.
  • Encapsulates varying behavior. Such as business rules.
PM> Install-Package DotNetRuleEngine

Nuget package available at: DotNetRuleEngine

Get Started at: DotNetRuleEngine Wiki

Build Status

Example

Model

public class Order
{
    public int Id { get; set; }
    public decimal Total { get; set; }
    public bool FreeShipping { get; set; }
}

Order order = new Order { Id = 1, Total = 79.99 };

Install DotNetRuleEngine

install-package dotnetruleengine

Create Rule(s)

Create a rule to update FreeShipping attribute if the amount is greater than $50.00

public class QualifiesForFreeShipping: Rule<Order>
{   
    public override IRuleResult Invoke()
    {
        if (Model.Total > 50.0m)
        {
            Model.FreeShipping = true;
        }
        
        return null;
    }
}

Invoke Rule(s)

var ruleResults = RuleEngine<Order>.GetInstance(order)
    .ApplyRules(new QualifiesForFreeShipping())
    .Execute()
Open Source Agenda is not affiliated with "DotNetRuleEngine" Project. README Source: ayayalar/DotNetRuleEngine
Stars
35
Open Issues
0
Last Commit
4 years ago

Open Source Agenda Badge

Open Source Agenda Rating