public async Task <List <Message> > Apply(List <Message> messages, int ruleId) { try { _loggingService.Log($"Rule {ruleId} has been recieved "); IMessageExpression messageExpression = MessageExppression.GetInstance(_loggingService, ruleId); _loggingService.Log($"Expression has been created for ruleId {ruleId}"); IEngine engine = RuleEngine.Getnstance(_loggingService, messageExpression); _loggingService.Log($"Rule engine has nee created for ruleId {ruleId}"); _loggingService.Log($"Applying the expression obatianed for ruleId {ruleId}"); return(await engine.Apply(messages)); } catch (Exception ex) { _loggingService.Log(ex); throw; } }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="messageExpression"> /// The message expression, source of the field value of the equality /// operator (left part of the operator). /// </param> /// <param name="valueExpression"> /// The value expression of the equality operator (right part of the operator). /// </param> /// <param name="startIndex"> /// The index of the start of the substring. /// </param> /// <param name="length"> /// The length of the substring. /// </param> public MidEqualsStringOperator(IMessageExpression messaeExpression, StringConstantExpression valueExpression, int startIndex, int length) : base(messaeExpression, valueExpression) { if (startIndex < 0) { throw new ArgumentException( "The start index of the substring can't be a negative value.", "startIndex"); } if (length < 0) { throw new ArgumentException( "The length of the substring can't be a negative value.", "length"); } _startIndex = startIndex; _length = length; }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="mti"> /// MTI to compare with the message MTI. /// </param> /// <param name="messageExpression"> /// The expression which supply the message to compare the MTI. /// </param> public MtiEqualsExpression(int mti, IMessageExpression messageExpression) { _mti = mti; _messageExpression = messageExpression; }
/// <summary> /// It initializes a new instance of the class. /// </summary> public MtiEqualsExpression() { _mti = -1; _messageExpression = null; }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="fieldNumber"> /// The field number to get the value. /// </param> /// <param name="messageExpression"> /// The sub field message expression. /// </param> public SubMessageExpression(int fieldNumber, IMessageExpression messageExpression) { _fieldNumber = fieldNumber; _messageExpression = messageExpression; }
/// <summary> /// It initializes a new instance of the class. /// </summary> public SubMessageExpression() { _fieldNumber = -1; _messageExpression = null; }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="messageExpression"> /// The message expression, source of the field value of the equality /// operator (left part of the operator). /// </param> /// <param name="valueExpression"> /// The value expression of the equality operator (right part of the operator). /// </param> public FieldValueEqualsBinaryOperator(IMessageExpression messageExpression, BinaryConstantExpression valueExpression) : base(messageExpression, valueExpression) { }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="messageExpression"> /// The expression which supply the message. /// </param> public IsSetExpression(IMessageExpression messageExpression) { _messageExpression = messageExpression; }
/// <summary> /// It initializes a new instance of the class. /// </summary> public IsSetExpression() { _messageExpression = null; }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="messageExpression"> /// The message expression, source of the field value of the equality /// operator (left part of the operator). /// </param> /// <param name="valueExpression"> /// The value expression of the equality operator (right part of the operator). /// </param> public EqualityEqualsOperator(IMessageExpression messageExpression, IValueExpression valueExpression) { MessageExpression = messageExpression; ValueExpression = valueExpression; }
/// <summary> /// It initializes a new instance of the class. /// </summary> public EqualityEqualsOperator() { _messageExpression = null; }
public static IEngine Getnstance(ILoggingService loggingService, IMessageExpression messageExpression) { return(new RuleEngine(loggingService, messageExpression)); }
private RuleEngine(ILoggingService loggingService, IMessageExpression messageExpression) { _loggingService = loggingService ?? throw new ArgumentNullException(nameof(loggingService)); _messageExpression = messageExpression ?? throw new ArgumentNullException(nameof(messageExpression)); }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="messageExpression"> /// The message expression, source of the field value of the equality /// operator (left part of the operator). /// </param> /// <param name="valueExpression"> /// The value expression of the equality operator (right part of the operator). /// </param> public FieldValueEqualsStringOperator(IMessageExpression messageExpression, StringConstantExpression valueExpression) : base(messageExpression, valueExpression) { }
/// <summary> /// It initializes a new instance of the class. /// </summary> /// <param name="messageExpression"> /// The inner message expression. /// </param> public ParentMessageExpression(IMessageExpression messageExpression) { _messageExpression = messageExpression; }
/// <summary> /// It initializes a new instance of the class. /// </summary> public ParentMessageExpression() { _messageExpression = null; }