public async Task Transfer(int funds, IUser recipient) { IUser sender = Context.User; if (funds < 1) { await ReplyAsync("Amount must be greater than zero."); } else if ((await _userRepository.GetCoinsByUserIdAsync(sender.Id)) < funds) { await ReplyAsync("Insufficient funds."); } else if (recipient == null) { await ReplyAsync("Recipient was not specified."); } else { await _service.RemoveFunds(sender.Id, funds); await _service.AddFunds(recipient.Id, funds); await Task.WhenAll(new[] { sender.SendMessageAsync($"{funds} coins sent to {recipient.Username}."), recipient.SendMessageAsync($"{funds} coins received from {sender.Username}.") }); } }
private async Task <List <PlayerReward> > RewardPlayers(List <GamePhase> phases, GroupType winningGroup) { List <PlayerReward> rewards = GetPlayerRewards(ActiveGame, phases, ActiveGame.Players, winningGroup); await Task.WhenAll(rewards.Select(r => { return(_coin.AddFunds(r.Player.User.Id, r.Reward)); })); await _coin.SaveAsync(); return(rewards); }
public async Task Transfer(ulong giverID, ulong receiverID, int amount) { await _coinService.RemoveFunds(giverID, amount); await _coinService.AddFunds(receiverID, amount); }