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); }