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)
if (notable) {
@ -52,12 +57,22 @@ class Queries {
crArray.append(CumulatedResults(player: player))
}
return crArray.sorted(by: { (cr1, cr2) -> Bool in
if cr1.numberOfCashes == cr2.numberOfCashes {
return cr1.total > cr2.total
}
return cr1.numberOfCashes > cr2.numberOfCashes
})
switch sort {
case .cashes:
return crArray.sorted(by: { (cr1, cr2) -> Bool in
if 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] {
@ -261,5 +276,4 @@ class Queries {
return games
}
}

@ -46,6 +46,7 @@ class ReportGenerator {
}
fileprivate var _biggestWinners: [CumulatedResults] = []
fileprivate var _mostWins: [CumulatedResults] = []
fileprivate var _mostCashes: [CumulatedResults] = []
fileprivate var _tournamentWinners: [TournamentWinner] = []
fileprivate var _tourniesByEntries: [TournamentRepresentable] = []
@ -67,6 +68,7 @@ class ReportGenerator {
let realm = try! Realm()
self._biggestWinners = Queries.biggestWinners(realm: realm)
self._mostWins = Queries.mostCashes(realm: realm, sort: .wins)
self._mostCashes = Queries.mostCashes(realm: realm)
self._tournamentWinners = Queries.allWinnersSortedByEvent(realm: realm)
self._tourniesByEntries = Queries.sortedEvents(realm: realm, fieldName: "entries", ascending: false)
@ -94,7 +96,6 @@ class ReportGenerator {
let notableCashes = Queries.notableCashes(realm: realm, date: date)
notableCashes.writeHTML(fileName: "reports/winners/notables_\(fileDate).html")
}
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 numberOfCashes: Int = 0
var results: [Result] = []
var winsCount: Int = 0
init(player: Player, average: Bool = false) {
self.player = player
@ -36,6 +37,9 @@ class CumulatedResults : HTMLRepresentable, ColumnRepresentable {
self.total += result.earnings
self.numberOfCashes += 1
self.results.append(result)
if result.rank == 1 {
self.winsCount += 1
}
}
static func headers() -> [String] {

Loading…
Cancel
Save