public async Task <BetsResults_Wrapper> GetsWinners(WinnerNumber_Wrapper WinnerNumber, ICollection <Bets_Wrapper> bets) { var ColorWinner = await GetWinnerColor(WinnerNumber).ConfigureAwait(false); BetsResults_Wrapper Results = new BetsResults_Wrapper(); Results.ResultRoulette = WinnerNumber.WinnerNumber; Results.Winners = new List <Winners_Wrapper>(); Parallel.ForEach(bets, bet => { Winners_Wrapper Winner = new Winners_Wrapper(); if (bet.IsColorBet) { if (bet.BetColor == ColorWinner) { Winner.IdUser = bet.IdUser; Winner.StakeValue = bet.BetValue; Winner.WinnerValue = (long)(bet.BetValue * 1.8); Results.Winners.Add(Winner); } } else { if (WinnerNumber.WinnerNumber == bet.BetNumber) { Winner.IdUser = bet.IdUser; Winner.StakeValue = bet.BetValue; Winner.WinnerValue = bet.BetValue * 5; } } }); return(Results); }
public async Task <BetsResults_Wrapper> CloseRoulette(IdRoulette_Wrapper IdRoulette) { WinnerNumber_Wrapper Winner = await _closeBetsRepository.CloseRoulette(IdRoulette).ConfigureAwait(false); ICollection <Bets_Wrapper> bets = await GetBets(IdRoulette).ConfigureAwait(false); BetsResults_Wrapper Results = await GetsWinners(Winner, bets).ConfigureAwait(false); Results.IdRoullete = IdRoulette.IdRoulette; return(Results); }