public static ProcessedImportRow AddException(this ProcessedImportRow processedImportRow, ImportDataException importDataException) { if (importDataException == null) { return(null); } var listExceptions = from ex in processedImportRow.ImportDataExceptions where ex.TemplateMappingColumn == importDataException.TemplateMappingColumn select ex; if (listExceptions.Count() == 0) { processedImportRow.ImportDataExceptions.Add(new ImportDataException { ExceptionType = importDataException.ExceptionType, TemplateColumnName = importDataException.TemplateColumnName, TemplateMappingColumn = importDataException.TemplateMappingColumn, MessageParam1 = importDataException.MessageParam1, MessageParam2 = importDataException.MessageParam2 }); } if (importDataException.IsValid == false) { processedImportRow.IsValid = false; } return(processedImportRow); }
private static string GetExceptionMessage(ImportDataException importDataException, IEnumerable <ExceptionMessage> exceptionMessages) { string message = string.Empty; List <string> list = (exceptionMessages.Where(ex => ex.MappingName == importDataException.TemplateMappingColumn).Select(ex => ex.Message)).ToList(); switch (importDataException.ExceptionType) { case ExceptionType.DbSettingIsMandatory: case ExceptionType.MandatoryInTable: list = (exceptionMessages.Where(ex => ex.MappingName.ToUpperInvariant() == "DBSETTING" && ex.ValidationName.ToUpperInvariant() == "ISMANDATORY").Select(ex => ex.Message)).ToList(); break; case ExceptionType.DbSettingMaxLength: list = (exceptionMessages.Where(ex => ex.MappingName.ToUpperInvariant() == "DBSETTING" && ex.ValidationName.ToUpperInvariant() == "LENGTH").Select(ex => ex.Message)).ToList(); break; case ExceptionType.DbSettingRegEx: list = (exceptionMessages.Where(ex => ex.MappingName == importDataException.TemplateMappingColumn && ex.ValidationName.ToUpperInvariant() == "REGEX").Select(ex => ex.Message)).ToList(); break; case ExceptionType.DbSettingMaximumValue: case ExceptionType.DbSettingMinimumValue: list = (exceptionMessages.Where(ex => ex.MappingName.ToUpperInvariant() == "DBSETTING" && ex.ValidationName.ToUpperInvariant() == "RANGE").Select(ex => ex.Message)).ToList(); break; case ExceptionType.DuplicateDistributorCode: case ExceptionType.DuplicateSupplierCode: list = (exceptionMessages.Where(ex => ex.MappingName == importDataException.TemplateMappingColumn).Select(ex => ex.Message)).ToList(); break; case ExceptionType.LookupMissing: list = (exceptionMessages.Where(ex => ex.MappingName == importDataException.TemplateMappingColumn && ex.ValidationName.ToUpperInvariant() == "LOOKUP").Select(ex => ex.Message)).ToList(); break; case ExceptionType.CategoryIsNotValid: list = (exceptionMessages.Where(ex => ex.MappingName == importDataException.TemplateMappingColumn && ex.ValidationName.ToUpperInvariant() == "DATABASE").Select(ex => ex.Message)).ToList(); break; case ExceptionType.InvalidFutureDate: list = (exceptionMessages.Where(ex => ex.MappingName == importDataException.TemplateMappingColumn && ex.ValidationName.ToUpperInvariant() == "DATABASE").Select(ex => ex.Message)).ToList(); break; case ExceptionType.InvalidDateFormat: case ExceptionType.CategoryRequired: list = (exceptionMessages.Where(ex => ex.MappingName == importDataException.TemplateMappingColumn && ex.ValidationName.ToUpperInvariant() == "ISMANDATORY").Select(ex => ex.Message)).ToList(); break; } if (list.Count > 0) { message = list[0]; message = string.Format(message, importDataException.TemplateColumnName, importDataException.MessageParam1, importDataException.MessageParam2); } return(message); }