コード例 #1
0
        private IQueryable <PlayerBan> FindBansInternal(string searchTerm, BanSearchMode searchMode)
        {
            switch (searchMode)
            {
            case BanSearchMode.Id:
                return(GetBansById(searchTerm));

            case BanSearchMode.Ip:
                return(GetBansByIp(searchTerm));

            case BanSearchMode.Hwid:
                return(GetBansByHwid(searchTerm));

            case BanSearchMode.IdOrIp:
                return(GetBansById(searchTerm).Concat(GetBansByIp(searchTerm)));

            case BanSearchMode.IdOrHwid:
                return(GetBansById(searchTerm).Concat(GetBansByHwid(searchTerm)));

            case BanSearchMode.IpOrHwid:
                return(GetBansByIp(searchTerm).Concat(GetBansByHwid(searchTerm)));

            case BanSearchMode.All:
                return(GetBansById(searchTerm).Concat(GetBansByIp(searchTerm)).Concat(GetBansByHwid(searchTerm)));

            default:
                return(m_DbContext.PlayerBans.Take(0));
            }
        }
コード例 #2
0
        public List <PlayerBan> UnbanAutoFind(string target, BanSearchMode searchMode)
        {
            var bans = FindBansInEffect(target, searchMode);

            UnbanInternal(bans);

            SaveChanges();

            return(bans);
        }
コード例 #3
0
        public async Task <List <PlayerBan> > UnbanAutoFindAsync(string target, BanSearchMode searchMode)
        {
            var bans = await FindBansInEffectAsync(target, searchMode);

            UnbanInternal(bans);

            await SaveChangesAsync();

            return(bans);
        }
コード例 #4
0
        public async Task <List <PlayerBan> > FindBansInEffectAsync(string searchTerm, BanSearchMode searchMode)
        {
            var bans = await FindBansInEffectInternal(searchTerm, searchMode).ToListAsync();

            return(bans.Where(k => DateTime.Now.Subtract(k.TimeOfBan).TotalSeconds <= k.Duration).ToList());
        }
コード例 #5
0
 public List <PlayerBan> FindBans(string searchTerm, BanSearchMode searchMode)
 {
     return(FindBansInternal(searchTerm, searchMode).ToList());
 }
コード例 #6
0
 public async Task <List <PlayerBan> > FindBansAsync(string searchTerm, BanSearchMode searchMode)
 {
     return(await FindBansInternal(searchTerm, searchMode).ToListAsync());
 }
コード例 #7
0
 public List <PlayerBan> FindBansInEffect(string searchTerm, BanSearchMode searchMode)
 {
     return(FindBansInEffectInternal(searchTerm, searchMode).ToList()
            .Where(k => DateTime.Now.Subtract(k.TimeOfBan).TotalSeconds <= k.Duration).ToList());
 }