public RouletteCloseResponseDto CloseRoulette(RouletteCloseDto rouletteCloseDto) { RouletteCloseResponseDto winner = this.GetWinner(); var roulette = this.GetById(rouletteCloseDto.Id); roulette.Status = StatusEnum.Close; this.UpdateWinnerIntoBets(roulette.Bets, winner); this.UpdateCache(); return(winner); }
private double CalculateCashAmount(Bet bet, RouletteCloseResponseDto winner) { double cash = 0; if (bet.Number == winner.WinningNumber) { cash = bet.CashAmount * 5; } if (bet.Color == winner.WinnigColor) { cash += bet.CashAmount * 1.8; } return(cash); }
private void UpdateWinnerIntoBets(List <Bet> bets, RouletteCloseResponseDto winner) { foreach (var item in bets) { item.IsWin = item.Number == winner.WinningNumber || item.Color == winner.WinnigColor; item.WinnigCash = this.CalculateCashAmount(item, winner); winner.Bets.Add(new BetCloseDto { CashAmount = item.CashAmount, Color = item.Color, IsWin = item.IsWin, Number = item.Number, UserId = item.UserId, WinnerAmount = item.WinnigCash.Value }); } }