public void RemoveUsersGuildKarmaRecord(ulong guildId, ulong userId)
        {
            GuildKarmaRecord deletion = this.context.GuildKarmaRecords.FirstOrDefault(record => record.GuildId == guildId && record.UserId == userId);

            this.context.Remove(deletion);
            this.context.SaveChanges();
        }
        public void AddKarma(ulong userId, ulong guildId, ulong karma)
        {
            GuildKarmaRecord guildKarmaRecord = this.GetUsersGuildKarmaRecord(userId, guildId);

            guildKarmaRecord.CurrentKarma += karma;
            this.context.GuildKarmaRecords.Update(guildKarmaRecord);
            this.context.SaveChanges();
        }
 public async Task ShowKarmaOfOtherAsync(CommandContext context, [Description("The member whose karma you'd like to view.")] DiscordMember member)
 {
     using IBotAccessProvider provider = this.providerBuilder.Build();
     GuildKarmaRecord userKarmaRecord = provider.GetUsersGuildKarmaRecord(member.Id, context.Guild.Id);
     DiscordEmbed     response        = new DiscordEmbedBuilder()
                                        .AddField("Karma:", $"{userKarmaRecord.CurrentKarma}", true)
                                        .WithAuthor(member.DisplayName, iconUrl: member.AvatarUrl)
                                        .WithColor(member.Color);
     await context.RespondAsync(embed : response);
 }
        public GuildKarmaRecord GetUsersGuildKarmaRecord(ulong userId, ulong guildId)
        {
            GuildKarmaRecord record = this.context.GuildKarmaRecords.FirstOrDefault(record => record.UserId == userId && record.GuildId == guildId);

            if (record == null)
            {
                record = new GuildKarmaRecord
                {
                    GuildId      = guildId,
                    UserId       = userId,
                    CurrentKarma = 0,
                };

                this.context.GuildKarmaRecords.Add(record);
                this.context.SaveChanges();
            }
            return(record);
        }