Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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.
                    }
                }
            });
        }