parent
79c2152d9e
commit
9af997c6a0
@ -0,0 +1,39 @@ |
||||
package net.pokeranalytics.android.model.utils |
||||
|
||||
import io.realm.Realm |
||||
import net.pokeranalytics.android.model.realm.Session |
||||
import net.pokeranalytics.android.model.realm.Transaction |
||||
import net.pokeranalytics.android.model.realm.TransactionType |
||||
import java.util.* |
||||
|
||||
class DataUtils { |
||||
|
||||
companion object { |
||||
|
||||
/** |
||||
* Returns true if the provided parameters doesn't correspond to an existing session |
||||
*/ |
||||
fun sessionCount(realm: Realm, startDate: Date, endDate: Date, net: Double): Int { |
||||
val sessions = realm.where(Session::class.java) |
||||
.equalTo("startDate", startDate) |
||||
.equalTo("endDate", endDate) |
||||
.equalTo("result.net", net) |
||||
.findAll() |
||||
return sessions.size |
||||
} |
||||
|
||||
/** |
||||
* Returns true if the provided parameters doesn't correspond to an existing transaction |
||||
*/ |
||||
fun transactionUnicityCheck(realm: Realm, date: Date, amount: Double, type: TransactionType): Boolean { |
||||
val transactions = realm.where(Transaction::class.java) |
||||
.equalTo("date", date) |
||||
.equalTo("amount", amount) |
||||
.equalTo("type.id", type.id) |
||||
.findAll() |
||||
return transactions.isEmpty() |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,21 +0,0 @@ |
||||
package net.pokeranalytics.android.model.utils |
||||
|
||||
import io.realm.Realm |
||||
import net.pokeranalytics.android.model.realm.Session |
||||
import java.util.* |
||||
|
||||
class SessionUtils { |
||||
|
||||
companion object { |
||||
|
||||
/** |
||||
* Returns true if the provided parameters doesn't correspond to an existing session |
||||
*/ |
||||
fun unicityCheck(realm: Realm, startDate: Date, endDate: Date, net: Double) : Boolean { |
||||
val sessions = realm.where(Session::class.java).equalTo("startDate", startDate).equalTo("endDate", endDate).equalTo("result.net", net).findAll() |
||||
return sessions.isEmpty() |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,112 @@ |
||||
package net.pokeranalytics.android.util.csv |
||||
|
||||
class ProductCSVDescriptors { |
||||
|
||||
companion object { |
||||
|
||||
val pokerIncomeCash: CSVDescriptor = SessionCSVDescriptor( |
||||
DataSource.POKER_INCOME, |
||||
false, |
||||
SessionField.Start("Start Time"), |
||||
SessionField.End("End Time"), |
||||
SessionField.Buyin("Buy In"), |
||||
SessionField.CashedOut("Cashed Out"), |
||||
SessionField.Break("Break Minutes"), |
||||
SessionField.LimitType("Limit Type"), |
||||
SessionField.Game("Game"), |
||||
SessionField.Bankroll("Bankroll"), |
||||
SessionField.Location("Location"), |
||||
SessionField.Location("Location Type"), |
||||
SessionField.Comment("Note"), |
||||
SessionField.Tips("Tips"), |
||||
SessionField.Blind("Stake") |
||||
) |
||||
|
||||
val pokerBankrollTracker: CSVDescriptor = SessionCSVDescriptor( |
||||
DataSource.POKER_BANKROLL_TRACKER, |
||||
true, |
||||
SessionField.Start("starttime", dateFormat = "MM/dd/yy HH:mm"), |
||||
SessionField.End("endtime", dateFormat = "MM/dd/yy HH:mm"), |
||||
SessionField.SessionType("variant"), |
||||
SessionField.Buyin("buyin"), |
||||
SessionField.CashedOut("cashout"), |
||||
SessionField.Rebuy("rebuycosts"), |
||||
SessionField.Addon("addoncosts"), |
||||
SessionField.Break("breakminutes"), |
||||
SessionField.LimitType("limit"), |
||||
SessionField.Game("game"), |
||||
SessionField.Bankroll("currency"), // same as currency code |
||||
SessionField.Location("type"), |
||||
// SessionField.Comment("sessionnote"), |
||||
SessionField.Tips("expensesfromstack"), |
||||
SessionField.SmallBlind("smallblind"), |
||||
SessionField.BigBlind("bigblind"), |
||||
SessionField.TournamentNumberOfPlayers("player"), |
||||
SessionField.TournamentPosition("place"), |
||||
SessionField.TournamentName("mttname"), |
||||
SessionField.CurrencyCode("currency"), |
||||
SessionField.CurrencyRate("exchangerate"), |
||||
SessionField.TableSize("tablesize") |
||||
) |
||||
|
||||
val runGoodTournaments: CSVDescriptor = SessionCSVDescriptor( |
||||
DataSource.RUNGOOD, |
||||
true, |
||||
SessionField.Start("Start Date", dateFormat = "dd/MM/yyyy"), |
||||
SessionField.StartTime("Start Time"), |
||||
SessionField.End("End Date"), |
||||
SessionField.EndTime("End Time"), |
||||
SessionField.Buyin("Total Buy-In"), |
||||
SessionField.CashedOut("Winnings"), |
||||
SessionField.NetResult("Profit"), |
||||
SessionField.Break("Break"), |
||||
SessionField.LimitType("Limit Type"), |
||||
SessionField.Game("Game"), |
||||
SessionField.Bankroll("Bankroll"), |
||||
SessionField.TableSize("Table Type"), |
||||
SessionField.Location("Location"), |
||||
SessionField.LocationType("Location Type"), |
||||
SessionField.Comment("Notes"), |
||||
SessionField.CurrencyCode("Currency"), |
||||
SessionField.TournamentName("Event Name"), |
||||
SessionField.TournamentNumberOfPlayers("Total Players"), |
||||
SessionField.TournamentPosition("Finished Place"), |
||||
SessionField.TournamentType("Single-Table/Multi-Table") |
||||
|
||||
) |
||||
|
||||
val runGoodCashGames: CSVDescriptor = SessionCSVDescriptor( |
||||
DataSource.RUNGOOD, |
||||
false, |
||||
SessionField.Start("Start Date", dateFormat = "dd/MM/yyyy"), |
||||
SessionField.StartTime("Start Time", dateFormat = "HH:mm"), |
||||
SessionField.End("End Date", dateFormat = "dd/MM/yyyy"), |
||||
SessionField.EndTime("End Time", dateFormat = "HH:mm"), |
||||
SessionField.Buyin("Total Buy-In"), |
||||
SessionField.CashedOut("Cashed Out"), |
||||
SessionField.NetResult("Profit"), |
||||
SessionField.Break("Break"), |
||||
SessionField.LimitType("Limit Type"), |
||||
SessionField.Game("Game"), |
||||
SessionField.Bankroll("Bankroll"), |
||||
SessionField.TableSize("Table Type"), |
||||
SessionField.Location("Location"), |
||||
SessionField.LocationType("Location Type"), |
||||
SessionField.Comment("Notes"), |
||||
SessionField.CurrencyCode("Currency"), |
||||
SessionField.Blind("Stakes", callback = { value -> |
||||
// $10/20 |
||||
value.drop(1) |
||||
val blinds = value.split("/") |
||||
if (blinds.size == 2) { |
||||
return@Blind Pair(blinds.first().toDouble(), blinds.last().toDouble()) |
||||
} else { |
||||
return@Blind null |
||||
} |
||||
}) |
||||
) |
||||
|
||||
|
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,122 @@ |
||||
package net.pokeranalytics.android.util.csv |
||||
|
||||
import java.util.* |
||||
|
||||
|
||||
/** |
||||
* The enumeration of Session fields |
||||
*/ |
||||
sealed class SessionField { |
||||
|
||||
data class Start( |
||||
override var header: String, |
||||
override var callback: ((String) -> Date?)? = null, |
||||
override val dateFormat: String? = null |
||||
) : DateCSVField |
||||
|
||||
data class StartTime( |
||||
override var header: String, |
||||
override var callback: ((String) -> Date?)? = null, |
||||
override val dateFormat: String? = null |
||||
) : DateCSVField |
||||
|
||||
data class End( |
||||
override var header: String, |
||||
override var callback: ((String) -> Date?)? = null, |
||||
override val dateFormat: String? = null |
||||
) : DateCSVField |
||||
|
||||
data class EndTime( |
||||
override var header: String, |
||||
override var callback: ((String) -> Date?)? = null, |
||||
override val dateFormat: String? = null |
||||
) : DateCSVField |
||||
|
||||
data class Buyin( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class NetResult( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class CashedOut( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class Break( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class Tips( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class SmallBlind( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class BigBlind( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class Rebuy( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class Addon( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
|
||||
data class Blind(override var header: String, override var callback: ((String) -> Pair<Double, Double>?)? = null) : |
||||
BlindCSVField |
||||
|
||||
data class Game(override var header: String) : CSVField |
||||
data class Location(override var header: String) : CSVField |
||||
data class LocationType(override var header: String) : CSVField |
||||
data class Bankroll(override var header: String) : CSVField |
||||
data class LimitType(override var header: String) : CSVField |
||||
data class Comment(override var header: String) : CSVField |
||||
data class SessionType(override var header: String) : CSVField |
||||
data class TableSize(override var header: String) : CSVField |
||||
data class CurrencyCode(override var header: String) : CSVField |
||||
data class TournamentName(override var header: String) : CSVField |
||||
data class TournamentType(override var header: String) : CSVField |
||||
|
||||
data class CurrencyRate( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class TournamentPosition( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
|
||||
data class TournamentNumberOfPlayers( |
||||
override var header: String, |
||||
override var callback: ((String) -> Double?)? = null, |
||||
override val numberFormat: String? = null |
||||
) : NumberCSVField |
||||
} |
||||
Loading…
Reference in new issue