fix multi import

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

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

@ -227,6 +227,15 @@ struct FileImportView: View {
}
.onChange(of: tournament.tournamentCategory) {
_save()
Task {
if let fileContent {
do {
try await _startImport(fileContent: fileContent)
} catch {
errorMessage = error.localizedDescription
}
}
}
}
}
} else if teams.isEmpty && didImport == true {
@ -428,7 +437,12 @@ struct FileImportView: View {
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 {
didImport = true
}

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

Loading…
Cancel
Save