public async Task GangInfo([Remainder] string gangName = null) { Gang gang; if (gangName == null) { gang = Context.Gang; } else { gang = await _gangRepo.GetGangAsync(gangName, Context.Guild.Id); } if (gang == null && gangName == null) { ReplyError("You are not in a gang."); } else if (gang == null) { ReplyError("This gang does not exist."); } var members = string.Empty; var guildInterface = Context.Guild as IGuild; foreach (var member in gang.Members) { var user = await guildInterface.GetUserAsync(member); if (user != null) { members += $"{user.Boldify()}, "; } } if (members.Length != 0) { members = $"__**Members:**__ {members.Substring(0, members.Length - 2)}\n"; } var leader = await guildInterface.GetUserAsync(gang.LeaderId); if (leader != null) { members = $"__**Leader:**__ {leader.Boldify()}\n" + members; } var description = members + $"__**Wealth:**__ {gang.Wealth.USD()}\n" + $"__**Interest rate:**__ {InterestRate.Calculate(gang.Wealth).ToString("P")}"; await SendAsync(description, gang.Name); }
private void ApplyInterestRate(object stateObj) { Task.Run(async() => { Logger.Log(LogSeverity.Debug, $"Timers", "Interest Rate"); var updateBuilder = Builders <Gang> .Update; foreach (var gang in await _gangRepo.AllAsync()) { try { await _gangRepo.ModifyAsync(gang, x => x.Wealth += InterestRate.Calculate(x.Wealth) * x.Wealth); } catch (OverflowException) { // Ignored. } } }); }