private static Configuration CreateCsvConfiguration(FileStructureMetadata fileStructureMetadata) { var csvConfiguration = CreateDefaultCsvConfiguration(fileStructureMetadata.SourceKind); csvConfiguration.CultureInfo = fileStructureMetadata.GetCultureInfo(); csvConfiguration.Encoding = Encoding.GetEncoding(fileStructureMetadata.Encoding); return(csvConfiguration); }
private static Configuration CreateDefaultCsvConfiguration(SourceKind sourceKind) { var configuration = new Configuration(); switch (sourceKind) { case SourceKind.FortisCsvArchive: configuration.RegisterClassMap <FortisOperationArchiveCsvMap>(); configuration.Encoding = Encoding.UTF8; configuration.CultureInfo = FileStructureMetadata.GetCultureInfo("fr-BE", ","); configuration.Delimiter = ";"; configuration.QuoteAllFields = true; configuration.TrimOptions = TrimOptions.InsideQuotes; configuration.MissingFieldFound = LogMissingFieldFound; configuration.HeaderValidated = LogHeaderValidatationFailed; break; case SourceKind.FortisCsvExport: configuration.RegisterClassMap <FortisOperationExportCsvMap>(); var ansiEncoding = Encoding.GetEncoding(1252); configuration.Encoding = ansiEncoding; configuration.CultureInfo = FileStructureMetadata.GetCultureInfo("fr-BE", "."); configuration.Delimiter = ";"; configuration.QuoteAllFields = false; configuration.TrimOptions = TrimOptions.Trim; configuration.MissingFieldFound = LogMissingFieldFound; configuration.HeaderValidated = LogHeaderValidatationFailed; break; case SourceKind.SodexoCsvExport: configuration.RegisterClassMap <SodexoOperationCsvMap>(); configuration.Encoding = Encoding.UTF8; configuration.CultureInfo = FileStructureMetadata.GetCultureInfo("fr-BE", "."); configuration.Delimiter = ";"; configuration.QuoteAllFields = true; configuration.TrimOptions = TrimOptions.InsideQuotes; configuration.MissingFieldFound = LogMissingFieldFound; configuration.HeaderValidated = LogHeaderValidatationFailed; break; case SourceKind.InternalCsvExport: configuration.RegisterClassMap <UnifiedAccountOperationCsvMap>(); configuration.Encoding = Encoding.UTF8; configuration.CultureInfo = FileStructureMetadata.GetCultureInfo("fr-BE", "."); configuration.Delimiter = ";"; configuration.QuoteAllFields = true; configuration.TrimOptions = TrimOptions.InsideQuotes; configuration.MissingFieldFound = LogMissingFieldFound; configuration.HeaderValidated = LogHeaderValidatationFailed; break; default: throw new ArgumentOutOfRangeException(nameof(sourceKind), sourceKind, null); } return(configuration); }