Added most wins

master
Laurent 6 years ago
parent 39729c3a6c
commit 4225a3b3cb
  1. 30
      TournamentStats/report/Queries.swift
  2. 3
      TournamentStats/report/ReportGenerator.swift
  3. 4
      TournamentStats/report/structures/CumulatedResults.swift

@ -40,7 +40,12 @@ class Queries {
}) })
} }
static func mostCashes(realm: Realm, notable: Bool = false) -> [CumulatedResults] { enum SortBy {
case cashes
case wins
}
static func mostCashes(realm: Realm, notable: Bool = false, sort: SortBy = .cashes) -> [CumulatedResults] {
var players = realm.objects(Player.self) var players = realm.objects(Player.self)
if (notable) { if (notable) {
@ -52,12 +57,22 @@ class Queries {
crArray.append(CumulatedResults(player: player)) crArray.append(CumulatedResults(player: player))
} }
return crArray.sorted(by: { (cr1, cr2) -> Bool in switch sort {
if cr1.numberOfCashes == cr2.numberOfCashes { case .cashes:
return cr1.total > cr2.total return crArray.sorted(by: { (cr1, cr2) -> Bool in
} if cr1.numberOfCashes == cr2.numberOfCashes {
return cr1.numberOfCashes > cr2.numberOfCashes return cr1.total > cr2.total
}) }
return cr1.numberOfCashes > cr2.numberOfCashes
})
case .wins:
return crArray.sorted(by: { (cr1, cr2) -> Bool in
if cr1.winsCount == cr2.winsCount {
return cr1.numberOfCashes > cr2.numberOfCashes
}
return cr1.winsCount > cr2.winsCount
})
}
} }
static func allWinnersSortedByEvent(realm: Realm, date: Date? = nil) -> [TournamentWinner] { static func allWinnersSortedByEvent(realm: Realm, date: Date? = nil) -> [TournamentWinner] {
@ -261,5 +276,4 @@ class Queries {
return games return games
} }
} }

@ -46,6 +46,7 @@ class ReportGenerator {
} }
fileprivate var _biggestWinners: [CumulatedResults] = [] fileprivate var _biggestWinners: [CumulatedResults] = []
fileprivate var _mostWins: [CumulatedResults] = []
fileprivate var _mostCashes: [CumulatedResults] = [] fileprivate var _mostCashes: [CumulatedResults] = []
fileprivate var _tournamentWinners: [TournamentWinner] = [] fileprivate var _tournamentWinners: [TournamentWinner] = []
fileprivate var _tourniesByEntries: [TournamentRepresentable] = [] fileprivate var _tourniesByEntries: [TournamentRepresentable] = []
@ -67,6 +68,7 @@ class ReportGenerator {
let realm = try! Realm() let realm = try! Realm()
self._biggestWinners = Queries.biggestWinners(realm: realm) self._biggestWinners = Queries.biggestWinners(realm: realm)
self._mostWins = Queries.mostCashes(realm: realm, sort: .wins)
self._mostCashes = Queries.mostCashes(realm: realm) self._mostCashes = Queries.mostCashes(realm: realm)
self._tournamentWinners = Queries.allWinnersSortedByEvent(realm: realm) self._tournamentWinners = Queries.allWinnersSortedByEvent(realm: realm)
self._tourniesByEntries = Queries.sortedEvents(realm: realm, fieldName: "entries", ascending: false) self._tourniesByEntries = Queries.sortedEvents(realm: realm, fieldName: "entries", ascending: false)
@ -95,7 +97,6 @@ class ReportGenerator {
notableCashes.writeHTML(fileName: "reports/winners/notables_\(fileDate).html") notableCashes.writeHTML(fileName: "reports/winners/notables_\(fileDate).html")
} }
print("total player count = \(realm.objects(Player.self).count)") // 16203, 16129 print("total player count = \(realm.objects(Player.self).count)") // 16203, 16129
} }

@ -20,6 +20,7 @@ class CumulatedResults : HTMLRepresentable, ColumnRepresentable {
var total: Double = 0.0 var total: Double = 0.0
var numberOfCashes: Int = 0 var numberOfCashes: Int = 0
var results: [Result] = [] var results: [Result] = []
var winsCount: Int = 0
init(player: Player, average: Bool = false) { init(player: Player, average: Bool = false) {
self.player = player self.player = player
@ -36,6 +37,9 @@ class CumulatedResults : HTMLRepresentable, ColumnRepresentable {
self.total += result.earnings self.total += result.earnings
self.numberOfCashes += 1 self.numberOfCashes += 1
self.results.append(result) self.results.append(result)
if result.rank == 1 {
self.winsCount += 1
}
} }
static func headers() -> [String] { static func headers() -> [String] {

Loading…
Cancel
Save