private static List <ExpandoObject> IterateErrorCheckRules(ref List <ExpandoObject> destDataRows, RuleList ruleList, ref List <ExpandoObject> errorMessages) { foreach (var row in destDataRows) { foreach (var eachRuleSet in ruleList.RuleSets) { foreach (var eachBaseRule in eachRuleSet.RuleSets) { if (eachBaseRule is IErrorCheck) { eachBaseRule.Configure(row); } } } try { ruleList.ErrCheck(row, ref destDataRows); } catch (ErrorCheckException ecEx) { var ex = new ExpandoObject() as IDictionary <string, Object>; ex.Add("ErrorMessage", ecEx.Message); errorMessages.Add((ExpandoObject)ex); } } return(destDataRows); }