fix multi import

multistore
Razmig Sarkissian 1 year ago
parent a84ddc539f
commit 1dc2b1a7d6
  1. 61
      PadelClub/Utils/FileImportManager.swift
  2. 16
      PadelClub/Views/Tournament/FileImportView.swift
  3. 25
      PadelClub/Views/Tournament/Screen/TableStructureView.swift

@ -268,13 +268,14 @@ class FileImportManager {
case .mix: return 1 case .mix: return 1
} }
} }
if tournamentCategory == tournament.tournamentCategory {
let playerOne = PlayerRegistration(federalData: Array(resultOne[0...7]), sex: sexPlayerOne, sexUnknown: sexUnknown) let playerOne = PlayerRegistration(federalData: Array(resultOne[0...7]), sex: sexPlayerOne, sexUnknown: sexUnknown)
playerOne.setComputedRank(in: tournament) playerOne.setComputedRank(in: tournament)
let playerTwo = PlayerRegistration(federalData: Array(resultTwo[0...7]), sex: sexPlayerTwo, sexUnknown: sexUnknown) let playerTwo = PlayerRegistration(federalData: Array(resultTwo[0...7]), sex: sexPlayerTwo, sexUnknown: sexUnknown)
playerTwo.setComputedRank(in: tournament) playerTwo.setComputedRank(in: tournament)
let team = TeamHolder(players: [playerOne, playerTwo], tournamentCategory: tournamentCategory, previousTeam: tournament.findTeam([playerOne, playerTwo]), tournament: tournament) let team = TeamHolder(players: [playerOne, playerTwo], tournamentCategory: tournamentCategory, previousTeam: tournament.findTeam([playerOne, playerTwo]), tournament: tournament)
results.append(team) results.append(team)
}
} }
} }
} }
@ -297,33 +298,35 @@ class FileImportManager {
return .men return .men
} }
} }
let result = Array(data.dropFirst(3).dropLast()) if tournamentCategory == tournament.tournamentCategory {
let result = Array(data.dropFirst(3).dropLast())
var sexPlayerOne : Int {
switch tournamentCategory { var sexPlayerOne : Int {
case .unlisted: return 1 switch tournamentCategory {
case .men: return 1 case .unlisted: return 1
case .women: return 0 case .men: return 1
case .mix: return 1 case .women: return 0
case .mix: return 1
}
} }
}
var sexPlayerTwo : Int { var sexPlayerTwo : Int {
switch tournamentCategory { switch tournamentCategory {
case .unlisted: return 1 case .unlisted: return 1
case .men: return 1 case .men: return 1
case .women: return 0 case .women: return 0
case .mix: return 0 case .mix: return 0
}
} }
}
let playerOne = PlayerRegistration(federalData: Array(result[0...7]), sex: sexPlayerOne, sexUnknown: sexUnknown) let playerOne = PlayerRegistration(federalData: Array(result[0...7]), sex: sexPlayerOne, sexUnknown: sexUnknown)
playerOne.setComputedRank(in: tournament) playerOne.setComputedRank(in: tournament)
let playerTwo = PlayerRegistration(federalData: Array(result[8...]), sex: sexPlayerTwo, sexUnknown: sexUnknown) let playerTwo = PlayerRegistration(federalData: Array(result[8...]), sex: sexPlayerTwo, sexUnknown: sexUnknown)
playerTwo.setComputedRank(in: tournament) playerTwo.setComputedRank(in: tournament)
let team = TeamHolder(players: [playerOne, playerTwo], tournamentCategory: tournamentCategory, previousTeam: tournament.findTeam([playerOne, playerTwo]), tournament: tournament) let team = TeamHolder(players: [playerOne, playerTwo], tournamentCategory: tournamentCategory, previousTeam: tournament.findTeam([playerOne, playerTwo]), tournament: tournament)
results.append(team) results.append(team)
}
} }
} }
return results return results

@ -227,6 +227,15 @@ struct FileImportView: View {
} }
.onChange(of: tournament.tournamentCategory) { .onChange(of: tournament.tournamentCategory) {
_save() _save()
Task {
if let fileContent {
do {
try await _startImport(fileContent: fileContent)
} catch {
errorMessage = error.localizedDescription
}
}
}
} }
} }
} else if teams.isEmpty && didImport == true { } else if teams.isEmpty && didImport == true {
@ -428,7 +437,12 @@ struct FileImportView: View {
await MonthData.calculateCurrentUnrankedValues(mostRecentDateAvailable: rankSourceDate) await MonthData.calculateCurrentUnrankedValues(mostRecentDateAvailable: rankSourceDate)
} }
self.teams = try await FileImportManager.shared.createTeams(from: fileContent, tournament: tournament, fileProvider: fileProvider) let tournaments = tournament.eventObject()?.tournaments ?? [tournament]
for tournament in tournaments {
let _teams = try await FileImportManager.shared.createTeams(from: fileContent, tournament: tournament, fileProvider: fileProvider)
self.teams += _teams
}
await MainActor.run { await MainActor.run {
didImport = true didImport = true
} }

@ -135,21 +135,24 @@ struct TableStructureView: View {
} }
} }
Section {
RowButtonView("Sauver sans reconstuire l'existant") { if tournament.state() != .initial {
_saveWithoutRebuild() Section {
RowButtonView("Sauver sans reconstuire l'existant") {
_saveWithoutRebuild()
}
} }
}
Section { Section {
RowButtonView("Reconstruire les poules", role:.destructive) { RowButtonView("Reconstruire les poules", role:.destructive) {
_save(rebuildEverything: false) _save(rebuildEverything: false)
}
} }
}
Section { Section {
RowButtonView("Tout refaire", role: .destructive) { RowButtonView("Tout refaire", role: .destructive) {
_save(rebuildEverything: true) _save(rebuildEverything: true)
}
} }
} }
} }

Loading…
Cancel
Save