public async Task RemoveUnverifyFromWebAsync(long userId, SocketGuildUser fromUser) { var unverify = await GrillBotRepository.UnverifyRepository.FindUnverifyByID(userId); if (unverify == null) { return; } var guild = DiscordClient.GetGuild(unverify.User.GuildIDSnowflake); if (guild == null) { GrillBotRepository.Remove(unverify); await GrillBotRepository.CommitAsync(); Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == unverify.User.GuildIDSnowflake && o.UserId == unverify.User.UserIDSnowflake); return; } var user = await guild.GetUserFromGuildAsync(unverify.User.UserIDSnowflake); if (user == null) { GrillBotRepository.Remove(unverify); await GrillBotRepository.CommitAsync(); Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == guild.Id && o.UserId == unverify.User.UserIDSnowflake); return; } await RemoveUnverifyAsync(guild, user, fromUser); Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == guild.Id && o.UserId == user.Id); }
public async Task RemoveReplyAsync(SocketGuild guild, int id) { if (!BotState.AutoReplyItems.Any(o => o.GuildIDSnowflake == guild.Id && o.ID == id)) { throw new ArgumentException($"Automatická odpověď s ID **{id}** neexistuje."); } var entity = await GrillBotRepository.AutoReplyRepository.FindItemByIdAsync(id); GrillBotRepository.Remove(entity); await GrillBotRepository.CommitAsync(); BotState.AutoReplyItems.RemoveAll(o => o.ID == id); }
public async Task OnUserLeftGuildAsync(SocketGuildUser user) { Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == user.Guild.Id && o.UserId == user.Id); var unverify = await GrillBotRepository.UnverifyRepository.FindUnverifyByUser(user.Guild.Id, user.Id); if (unverify == null) { return; } GrillBotRepository.Remove(unverify); await GrillBotRepository.CommitAsync(); }
public async Task DeleteItemAsync(long id) { var item = await GrillBotRepository.AuditLogs.FindItemByIdAsync(id); if (item == null) { return; } if (item.Files.Count > 0) { GrillBotRepository.RemoveCollection(item.Files); } GrillBotRepository.Remove(item); await GrillBotRepository.CommitAsync(); }
public async Task AutoUnverifyRemoveAsync(ulong guildID, ulong userID) { try { var unverify = await GrillBotRepository.UnverifyRepository.FindUnverifyByUser(guildID, userID); if (unverify == null) { return; } var guild = DiscordClient.GetGuild(guildID); if (guild == null) { GrillBotRepository.Remove(unverify); await GrillBotRepository.CommitAsync(); return; } var user = await guild.GetUserFromGuildAsync(userID); if (user == null) { GrillBotRepository.Remove(unverify); await GrillBotRepository.CommitAsync(); return; } await RemoveUnverifyAsync(guild, user, DiscordClient.CurrentUser, true); } catch (Exception ex) { var message = new LogMessage(LogSeverity.Error, nameof(UnverifyService), "An error occured when unverify returning access.", ex); await Logger.OnLogAsync(message); } }