// // Queries.swift // TournamentStats // // Created by Laurent Morvillier on 03/06/2019. // Copyright © 2019 Stax River. All rights reserved. // import Foundation import RealmSwift import Realm class Queries { static func biggestWinners(realm: Realm) -> [CumulatedResults] { let players = realm.objects(Player.self) var crArray: [CumulatedResults] = [] for player in players { crArray.append(CumulatedResults(player: player)) } return crArray.sorted(by: { (cr1, cr2) -> Bool in return cr1.total > cr2.total }) } static func mostCashes(realm: Realm) -> [CumulatedResults] { let players = realm.objects(Player.self) var crArray: [CumulatedResults] = [] for player in players { 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 }) } static func allWinners(realm: Realm, date: Date? = nil) -> [TournamentWinner] { let winners: Results if let day = date { winners = realm.objects(Result.self).filter("rank == 1 && ANY tournaments.date IN %@", [day]) } else { winners = realm.objects(Result.self).filter("rank == 1") } var tws: [TournamentWinner] = [] for w in winners { let tw = TournamentWinner(tournament: w.tournaments.first!, result: w) tws.append(tw) } tws.sort { (tw1, tw2) -> Bool in tw1.tournament.number < tw2.tournament.number } return tws } }