Esempio n. 1
0
        private async Task DraftWinner(DatabaseModel.Match match)
        {
            var betsOnMatch = await _repoServiceFactory.BetRepoService.FindAsync(match);

            var itemBetsOnMatch = await _repoServiceFactory.ItemBettedRepoService.FindAsync(betsOnMatch);

            var percentage  = Convert.ToDouble(match.Percentage, CultureInfo.InvariantCulture);
            var winningBet  = _draftService.GetWinningBet(percentage, betsOnMatch, itemBetsOnMatch);
            var winningUser = await _repoServiceFactory.UserRepoService.FindAsync(winningBet.Bet.UserId);

            await _repoServiceFactory.MatchRepoService.AddWinnerToMatch(winningUser, match.RoundId);

            var sum = itemBetsOnMatch.Sum(itemBet => itemBet.Value);
            await _matchHubConnections.Winner(new JackpotWinnerSelected
            {
                ImageUrl         = winningUser.ImageUrl,
                Name             = winningUser.Name,
                SteamId          = winningUser.SteamId,
                Percentage       = match.Percentage,
                PotValue         = sum,
                Quote            = winningUser.Quote,
                RoundId          = match.RoundId,
                DraftingGraph    = _currentMatchSettings.DraftingGraph,
                DraftingTimeInMs = _currentMatchSettings.DraftingTimeInMilliSec
            });

            await _draftService.ChangeOwnerOfItems(betsOnMatch, itemBetsOnMatch, winningUser, match.Id, _currentMatchSettings.Rake, _gameMode.Id);

            _discordService.JackpotWinnerAsync(match.RoundId, sum);
        }