private string WorksheetValidation(DataTable sourceTable)
        {
            StringBuilder str = new StringBuilder();

            var rmRules = ValidationRules.Worksheets.Where(a => a.Name == sourceTable.TableName).FirstOrDefault();

            if (rmRules == null)
            { return string.Empty; }

            foreach (var validation in rmRules.Validations)
            {
                switch (validation.Type)
                {
                    case ValidationTypeEnum.ZeroCheck:
                        str.Append(sourceTable.ZeroValueCheck(validation.Field));
                        break;
                    case ValidationTypeEnum.PossibleValueCheck:
                        str.Append(sourceTable.ValueCheck(validation.Field, validation.Values));
                        break;
                    default:
                        break;
                }
            }

            return str.ToString();
        }
        private List<LogData> WorksheetValidation(DataTable sourceTable)
        {
            var logData = new List<LogData>();
            var rmRules = ValidationRules.Worksheets.Where(a => a.Name == sourceTable.TableName).FirstOrDefault();

            if (rmRules == null)
            { return logData; }

            foreach (var validation in rmRules.Validations)
            {
                switch (validation.Type)
                {
                    case ValidationTypeEnum.NullCheck:
                        logData.AddRange(sourceTable.NullValueCheck(validation.Field));
                        break;
                    case ValidationTypeEnum.ReferenceDataTypeCheck:
                        var dataTypeReferenceTable = tableCollection.Where(a => a.TableName == validation.ReferenceTable).FirstOrDefault();
                        logData.AddRange(sourceTable.ReferenceDataTypeCheck(validation.Field, validation.DataType, validation.DataTypeField, dataTypeReferenceTable, validation.ReferenceDataTypeField, validation.ReferenceCompareField));
                        break;
                    case ValidationTypeEnum.ZeroCheck:
                        logData.AddRange(sourceTable.ZeroValueCheck(validation.Field));
                        break;
                    case ValidationTypeEnum.PossibleValueCheck:
                        logData.AddRange(sourceTable.ValueCheck(validation.Field, validation.Values));
                        break;
                    case ValidationTypeEnum.ConditionalCheck:
                        logData.AddRange(sourceTable.ConditionalCheck(validation.Field, validation.Values, validation.ConditionBasedKeyValues));
                        break;
                    case ValidationTypeEnum.ReferenceValueCheck:
                        var referenceTable = tableCollection.Where(a => a.TableName == validation.ReferenceTable).FirstOrDefault();
                        logData.AddRange(sourceTable.ReferenceCheck(validation.Field, referenceTable, validation.ReferenceField));
                        break;
                    case ValidationTypeEnum.GroupCheck:
                        logData.AddRange(sourceTable.GroupCheck(validation.Field, validation.IgnoreFields));
                        break;
                    case ValidationTypeEnum.DateTypeCheck:
                        logData.AddRange(sourceTable.DataTypeCheck(validation.Field));
                        break;
                    default:
                        break;
                }
            }

            return logData;
        }