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