public virtual Gamble whoIsWinner(Gamble gamble) { Gamble winner; if (this.gambleType.Equals((object)gamble.gambleType)) { winner = this.whoIsWinnerWithSameGambleType(gamble); } else if (this.gambleType.greater(gamble.gambleType)) { winner = this; } else { winner = gamble; } return(winner); }
protected internal virtual Gamble whoIsWinnerWithSameGambleType(Gamble gamble) { IList <Value> orderedValues = gamble.orderedValues; int i = 0; while (i < orderedValues.Count - 1 && this.orderedValues[i].Equals(orderedValues[i])) { i++; } if (this.orderedValues[i].Greater(orderedValues[i])) { return(this); } else if (orderedValues[i].Greater(this.orderedValues[i])) { return(gamble); } return(null); }