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