public DiscordUser(SocketGuild guild, SocketGuildUser user, DBDiscordUser dbUser, List <UserUnverifyHistoryItem> unverifyHistory) { Guild = guild; User = user; ID = dbUser.ID; Points = dbUser.Points; GivenReactionsCount = dbUser.GivenReactionsCount; ObtainedReactionsCount = dbUser.ObtainedReactionsCount; WebAdminAccess = !string.IsNullOrEmpty(dbUser.WebAdminPassword); ApiAccess = !string.IsNullOrEmpty(dbUser.ApiToken); Birthday = dbUser.Birthday == null ? null : new UserBirthday(dbUser.Birthday); Channels = dbUser.Channels .Select(o => new ChannelStatItem(guild.GetChannel(o.ChannelIDSnowflake), o)) .Where(o => o.Channel != null) .OrderByDescending(o => o.Count) .ToList(); UnverifyHistory = unverifyHistory; MathAuditItems = dbUser.MathAudit.Select(o => new MathAuditItem(o, guild)).ToList(); if (dbUser.Statistics != null) { Statistics = new StatisticItem(dbUser.Statistics); } }
private async Task <DiscordUser> MapUserAsync(DBDiscordUser dbUser, List <UserUnverifyHistoryItem> unverifyHistory) { var guild = DiscordClient.GetGuild(dbUser.GuildIDSnowflake); if (guild == null) { return(null); } var socketUser = await guild.GetUserFromGuildAsync(dbUser.UserIDSnowflake); if (socketUser == null) { return(null); } return(new DiscordUser(guild, socketUser, dbUser, unverifyHistory)); }
public static async Task <DiscordUser> CreateAsync(SocketGuild guild, SocketGuildUser user, DBDiscordUser dbUser, DiscordSocketClient discordClient, RestApplication botAppInfo) { var result = new DiscordUser() { ApiAccess = !string.IsNullOrEmpty(dbUser.ApiToken), Guild = guild, User = user, ID = dbUser.ID, Points = dbUser.Points, GivenReactionsCount = dbUser.GivenReactionsCount, ObtainedReactionsCount = dbUser.ObtainedReactionsCount, WebAdminAccess = !string.IsNullOrEmpty(dbUser.WebAdminPassword), Birthday = dbUser.Birthday, ApiAccessCount = dbUser.ApiAccessCount, WebAdminLoginCount = dbUser.WebAdminLoginCount, Flags = dbUser.Flags, UnverifyEndsAt = dbUser.Unverify?.EndDateTime, UnverifyImunityGroup = dbUser.UnverifyImunityGroup }; if (botAppInfo.Owner.Id == user.Id) { result.Flags |= (long)UserFlags.BotAdmin; } result.Channels = dbUser.Channels .Select(o => new ChannelStatItem(guild.GetChannel(o.ChannelIDSnowflake), o)) .Where(o => o.Channel != null) .OrderByDescending(o => o.Count) .ThenByDescending(o => o.LastMessageAt) .ToList(); if (dbUser.UsedInvite != null) { SocketGuildUser inviteCreator = null; if (dbUser.UsedInvite.Creator != null) { inviteCreator = await guild.GetUserFromGuildAsync(dbUser.UsedInvite.Creator.UserIDSnowflake); } result.UsedInvite = new InviteModel(dbUser.UsedInvite, inviteCreator); } else if (!string.IsNullOrEmpty(dbUser.UsedInviteCode)) { result.UsedInvite = new InviteModel(dbUser.UsedInviteCode); } result.UnverifyHistory = dbUser.IncomingUnverifyOperations .Select(o => new UnverifyLogItem(o, discordClient)) .OrderByDescending(o => o.DateTime) .ToList(); result.GivenUnverifyHistory = dbUser.OutgoingUnverifyOperations .Select(o => new UnverifyLogItem(o, discordClient)) .OrderByDescending(o => o.DateTime) .ToList(); result.Reminders = new List <RemindItem>(); foreach (var remind in dbUser.Reminders) { var fromUser = remind.FromUser != null ? await guild.GetUserFromGuildAsync(remind.FromUser.UserIDSnowflake) : null; result.Reminders.Add(new RemindItem(remind, fromUser)); } result.CreatedInvites = dbUser.CreatedInvites.Select(o => new InviteModel(o, user, o.UsedUsers.Count)).ToList(); return(result); }
public async Task <List <UserUnverifyHistoryItem> > GetUnverifyHistoryOfUserAsync(DBDiscordUser user) { var data = Repository.GetHistoryOfUser(user.GuildIDSnowflake, user.UserIDSnowflake); var result = new List <UserUnverifyHistoryItem>(); foreach (var item in data) { var guild = DiscordClient.GetGuild(item.GuildIDSnowflake); var historyItem = new UserUnverifyHistoryItem(item) { FromUser = (await guild.GetUserFromGuildAsync(item.FromUserIDSnowflake))?.GetFullName() }; result.Add(historyItem); } return(result); }
public static async Task <DiscordUser> MapUserAsync(DiscordSocketClient discord, BotState state, DBDiscordUser dBUser) { var guild = discord.GetGuild(dBUser.GuildIDSnowflake); if (guild == null) { return(null); } var socketUser = await guild.GetUserFromGuildAsync(dBUser.UserIDSnowflake); if (socketUser == null) { return(null); } return(await DiscordUser.CreateAsync(guild, socketUser, dBUser, discord, state.AppInfo)); }