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;
     }
 }
Beispiel #2
0
        /// <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;
        }
Beispiel #3
0
 /// <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;
 }
Beispiel #4
0
 /// <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)
 {
 }
Beispiel #8
0
 /// <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;
 }
Beispiel #9
0
 /// <summary>
 /// It initializes a new instance of the class.
 /// </summary>
 public IsSetExpression()
 {
     _messageExpression = null;
 }
Beispiel #10
0
 /// <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;
 }
Beispiel #11
0
 /// <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));
 }
Beispiel #14
0
 /// <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;
 }