Ejemplo n.º 1
0
        public async Task Give()
        {
            var user = Dummies.Alice;
            await _manager.ModifyPointsAsync((await _guildMemberManager.GetGuildMemberAsync(user.GuildId, user.Id)) !, 20);

            var dbUser = await _context.GuildMembers.SingleOrDefaultAsync(m => m.GuildId == user.GuildId && m.MemberId == user.Id);

            Assert.Equal(expected: 20, dbUser.CurrencyCount);
        }
Ejemplo n.º 2
0
        public async Task Recruited(
            [Summary("Recruiter")] IGuildUser recruiter,
            [Summary("Members recruited")] params IGuildUser[] recruited)
        {
            var recruiterId = recruiter.Id;

            foreach (var member in recruited)
            {
                var dbUser = (await _guildMemberManager.GetGuildMemberAsync(recruiter.GuildId, member.Id)) !;
                await _guildMemberManager.AddRecruitAsync(dbUser, recruiterId, DateTimeOffset.UtcNow);
            }

            await this.ReplySuccessEmbedAsync($"Successfully registered {recruited.Length} user(s) as recruits of {recruiter.Mention}.");
        }
Ejemplo n.º 3
0
        private async Task <Embed> ModifyAsyncExec(int qty, IEnumerable <IGuildUser> guildUsers)
        {
            var author         = (IGuildUser)Context.Message.Author;
            var currencySymbol = (await _guildPreferences.GetPreferencesAsync(author.GuildId)).CurrencySymbol;
            var reply          = new EmbedBuilder()
                                 .WithDefault(embedColor: EmbedColor.Success, author: author);

            var no = 1;

            foreach (var user in guildUsers)
            {
                var member = (await _guildMemberManager.GetGuildMemberAsync(user)) !;
                await _currencyManager.ModifyPointsAsync(member, qty);

                // Format a nice output.
                reply.AddField($"No. {no++}:", $"{user.Mention}: {member.CurrencyCount - qty} -> {member.CurrencyCount} {currencySymbol}");
            }

            return(reply.Build());
        }
Ejemplo n.º 4
0
        public async Task GetMember()
        {
            // Fail to get the entity when he doesn't exist.
            var member = await _manager.GetGuildMemberAsync(guildId : 1, memberId : 1, addIfNonExistent : false);

            Assert.Null(member);

            // This time make sure to add the member.
            member = await _manager.GetGuildMemberAsync(guildId : 1, memberId : 1);

            Assert.NotNull(member);

            // Check if internal extenstion .SingleOrDefaultAsync() does not crash
            member = await _manager.GetGuildMemberAsync(guildId : 1, memberId : 1);

            Assert.NotNull(member);

            // Once more to see if it wasn't added a second time.
            member = await _manager.GetGuildMemberAsync(guildId : 1, memberId : 1);

            Assert.NotNull(member);
        }