Пример #1
0
        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());
            }
        }
Пример #2
0
        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());
            }
        }
Пример #3
0
        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);
            }
        }