public async Task <int> RemoveModerationActionAsync(ModerationAction action) { using (var scope = _services.CreateScope()) { var _db = scope.ServiceProvider.GetRequiredService <EntityContext>(); var actions = _db.ModerationActions; var query = actions.Where(x => x.GuildId == action.GuildId); ModerationActionCollection list; if (!query.Any()) { list = new ModerationActionCollection { GuildId = action.GuildId }; actions.Add(list); } else { list = query.Single(); } if (list.Contains(action)) { list.Remove(action); } return(await _db.SaveChangesAsync()); } }
public async Task <int> RemoveModerationActionAsync(SocketGuildUser user, ModerationAction.ActionType type) { using (var scope = _services.CreateScope()) { var _db = scope.ServiceProvider.GetRequiredService <EntityContext>(); var actions = _db.ModerationActions; var query = actions.Where(x => x.GuildId == user.Guild.Id); ModerationActionCollection list; if (!query.Any()) { list = new ModerationActionCollection { GuildId = user.Guild.Id }; actions.Add(list); } else { list = query.Single(); } list.RemoveAll(x => x.UserId == user.Id && x.Type == type); return(await _db.SaveChangesAsync()); } }
public async Task <ModerationActionCollection> GetModerationActionsAsync(ulong guildId) { using (var scope = _services.CreateScope()) { var _db = scope.ServiceProvider.GetRequiredService <EntityContext>(); var c = _db.ModerationActions; var query = c.Include(x => x.Actions).Where(x => x.GuildId == guildId); ModerationActionCollection actions; if (!query.Any()) { actions = new ModerationActionCollection { GuildId = guildId }; c.Add(actions); } else { actions = query.Single(); } await _db.SaveChangesAsync(); return(actions); } }