Beispiel #1
0
        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);
        }