|
|
|
@ -178,7 +178,7 @@ class FileImportManager { |
|
|
|
|
|
|
|
|
|
|
|
static let FFT_ASSIMILATION_WOMAN_IN_MAN = "A calculer selon la pondération en vigueur" |
|
|
|
static let FFT_ASSIMILATION_WOMAN_IN_MAN = "A calculer selon la pondération en vigueur" |
|
|
|
|
|
|
|
|
|
|
|
func createTeams(from fileContent: String, tournament: Tournament, fileProvider: FileProvider = .frenchFederation, checkingCategoryDisabled: Bool) async throws -> [TeamHolder] { |
|
|
|
func createTeams(from fileContent: String, tournament: Tournament, fileProvider: FileProvider = .frenchFederation, checkingCategoryDisabled: Bool, chunkByParameter: Bool) async throws -> [TeamHolder] { |
|
|
|
|
|
|
|
|
|
|
|
switch fileProvider { |
|
|
|
switch fileProvider { |
|
|
|
case .frenchFederation: |
|
|
|
case .frenchFederation: |
|
|
|
@ -186,9 +186,9 @@ class FileImportManager { |
|
|
|
case .padelClub: |
|
|
|
case .padelClub: |
|
|
|
return await _getPadelClubTeams(from: fileContent, tournament: tournament) |
|
|
|
return await _getPadelClubTeams(from: fileContent, tournament: tournament) |
|
|
|
case .custom: |
|
|
|
case .custom: |
|
|
|
return await _getPadelBusinessLeagueTeams(from: fileContent, autoSearch: false, tournament: tournament) |
|
|
|
return await _getPadelBusinessLeagueTeams(from: fileContent, chunkByParameter: chunkByParameter, autoSearch: false, tournament: tournament) |
|
|
|
case .customAutoSearch: |
|
|
|
case .customAutoSearch: |
|
|
|
return await _getPadelBusinessLeagueTeams(from: fileContent, autoSearch: true, tournament: tournament) |
|
|
|
return await _getPadelBusinessLeagueTeams(from: fileContent, chunkByParameter: chunkByParameter, autoSearch: true, tournament: tournament) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -424,7 +424,7 @@ class FileImportManager { |
|
|
|
return results |
|
|
|
return results |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func _getPadelBusinessLeagueTeams(from fileContent: String, autoSearch: Bool, tournament: Tournament) async -> [TeamHolder] { |
|
|
|
private func _getPadelBusinessLeagueTeams(from fileContent: String, chunkByParameter: Bool, autoSearch: Bool, tournament: Tournament) async -> [TeamHolder] { |
|
|
|
let lines = fileContent.replacingOccurrences(of: "\"", with: "").components(separatedBy: "\n") |
|
|
|
let lines = fileContent.replacingOccurrences(of: "\"", with: "").components(separatedBy: "\n") |
|
|
|
guard let firstLine = lines.first else { return [] } |
|
|
|
guard let firstLine = lines.first else { return [] } |
|
|
|
var separator = "," |
|
|
|
var separator = "," |
|
|
|
@ -434,7 +434,13 @@ class FileImportManager { |
|
|
|
let fetchRequest = ImportedPlayer.fetchRequest() |
|
|
|
let fetchRequest = ImportedPlayer.fetchRequest() |
|
|
|
let federalContext = PersistenceController.shared.localContainer.viewContext |
|
|
|
let federalContext = PersistenceController.shared.localContainer.viewContext |
|
|
|
|
|
|
|
|
|
|
|
let results: [TeamHolder] = lines.chunked(byParameterAt: 1).map { team in |
|
|
|
var chunks: [[String]] = [] |
|
|
|
|
|
|
|
if chunkByParameter { |
|
|
|
|
|
|
|
chunks = lines.chunked(byParameterAt: 1) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
chunks = lines.chunked(into: 2) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
let results = chunks.map { team in |
|
|
|
var teamName: String? = nil |
|
|
|
var teamName: String? = nil |
|
|
|
let players = team.map { player in |
|
|
|
let players = team.map { player in |
|
|
|
let data = player.components(separatedBy: separator) |
|
|
|
let data = player.components(separatedBy: separator) |
|
|
|
|