Example #1
0
        /// <summary>
        ///     Convert all different types of rules to DTOs
        /// </summary>
        /// <param name="rule">entity</param>
        /// <returns>dto</returns>
        /// <exception cref="FormatException">Subclass is not recognized.</exception>
        public static TriggerRuleBase ConvertRule(ITriggerRule rule)
        {
            if (rule is ContextCollectionRule)
            {
                var dto = (ContextCollectionRule)rule;
                return(new TriggerContextRule
                {
                    ContextName = dto.ContextName,
                    Filter = ConvertFilterCondition(dto.Condition),
                    PropertyName = dto.PropertyName,
                    PropertyValue = dto.PropertyValue,
                    ResultToUse = ConvertFilterResult(dto.ResultToUse)
                });
            }

            if (rule is ExceptionRule)
            {
                var dto = (ExceptionRule)rule;
                return(new TriggerExceptionRule
                {
                    FieldName = dto.FieldName,
                    Filter = ConvertFilterCondition(dto.Condition),
                    ResultToUse = ConvertFilterResult(dto.ResultToUse),
                    Value = dto.Value
                });
            }

            throw new FormatException("Failed to convert " + rule);
        }
        /// <summary>
        ///     Convert all different types of rules to DTOs
        /// </summary>
        /// <param name="rule">entity</param>
        /// <returns>DTO</returns>
        /// <exception cref="FormatException">Subclass is not recognized.</exception>
        public static TriggerRuleBase ConvertRule(ITriggerRule rule)
        {
            switch (rule)
            {
            case ContextCollectionRule dto:
                return(new TriggerContextRule
                {
                    ContextName = dto.ContextName,
                    Filter = ConvertFilterCondition(dto.Condition),
                    PropertyName = dto.PropertyName,
                    PropertyValue = dto.PropertyValue,
                    ResultToUse = ConvertFilterResult(dto.ResultToUse)
                });

            case ExceptionRule dto1:
                return(new TriggerExceptionRule
                {
                    FieldName = dto1.FieldName,
                    Filter = ConvertFilterCondition(dto1.Condition),
                    ResultToUse = ConvertFilterResult(dto1.ResultToUse),
                    Value = dto1.Value
                });
            }

            throw new FormatException("Failed to convert " + rule);
        }
Example #3
0
        /// <summary>
        ///     Add the rules in the order that they should be check in. the first rule added is the first rule that will decide
        ///     which action to take.
        /// </summary>
        /// <param name="rule">Rule to add</param>
        public void AddRule(ITriggerRule rule)
        {
            if (rule == null)
            {
                throw new ArgumentNullException("rule");
            }

            _rules.Add(rule);
        }