public async Task <WinnerNumber_Wrapper> CloseRoulette(IdRoulette_Wrapper IdRoulette)
        {
            var connectionString = _configuration.GetConnectionString("develop");

            if (string.IsNullOrEmpty(connectionString))
            {
                throw new ArgumentException("No connection string in config.json");
            }


            await using (var con = new SqlConnection(connectionString))
            {
                await using (var cmd = new SqlCommand("[SP_CloseRoulette]", con))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@IdRoulette", IdRoulette.IdRoulette);
                    con.Open();
                    var reader = await cmd.ExecuteScalarAsync().ConfigureAwait(false);

                    WinnerNumber_Wrapper Winner = new WinnerNumber_Wrapper();
                    Winner.WinnerNumber = Int32.Parse(reader.ToString());
                    return(Winner);
                }
            }
        }
        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);
        }
        public async Task <int> GetWinnerColor(WinnerNumber_Wrapper Winner)
        {
            int ColorWinner;

            if (Winner.WinnerNumber % 2 == 0)
            {
                ColorWinner = 1;
            }
            else
            {
                ColorWinner = 2;
            }
            return(ColorWinner);
        }