yavsc/Yavsc.Server/Models/Workflow/Process/Rule.cs
Paul Schneider 781ce94edc v 1.0.5-rc20-alpha5
in order to build 1.0.5-rc20-alpha5

* fixing dep graph, while moving as must as possible code from Yavsc to
Yavsc.Server
* impoved topmost Makefile
* cleaned the badly desined, ans system redondant "Action" definiton
2018-06-12 12:30:31 +02:00

35 lines
985 B
C#

using System;
using System.ComponentModel.DataAnnotations;
namespace Yavsc.Models.Process
{
/// <summary>
/// An abstract, identified rule
/// </summary>
public abstract class Rule<TResult,TInput>
{
[Key]
public string Id { get; set; }
/// <summary>
/// Left part for this rule, a conjonction.
/// All of these requisitions must be true
/// in order to begin any related process.
/// </summary>
/// <returns></returns>
public Conjonction Left { get; set; }
/// <summary>
/// Right part of this rule, a disjonction.
/// That is, only one of these post requisitions
/// has to be true in order for this rule
/// to expose a success.
/// </summary>
/// <returns></returns>
public Disjonction Right { get; set; }
public string Description { get; set; }
public abstract TResult Execute(TInput inputData);
}
}