/// <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); }
/// <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); }