コード例 #1
0
        public async Task <int> GetBanFileMonitorsCount(BanFileMonitorFilterModel filterModel)
        {
            if (filterModel == null)
            {
                throw new ArgumentNullException(nameof(filterModel));
            }

            return(await _legacyContext.BanFileMonitors.ApplyFilter(filterModel).CountAsync());
        }
コード例 #2
0
        public async Task <IActionResult> Index()
        {
            var filterModel = new BanFileMonitorFilterModel
            {
                Order = BanFileMonitorFilterModel.OrderBy.BannerServerListPosition
            }.ApplyAuth(User);
            var banFileMonitorDtos = await _banFileMonitorsRepository.GetBanFileMonitors(filterModel);

            return(View(banFileMonitorDtos));
        }
コード例 #3
0
        public static BanFileMonitorFilterModel ApplyAuth(this BanFileMonitorFilterModel filterModel, ClaimsPrincipal claimsPrincipal)
        {
            var requiredClaims = new[] { XtremeIdiotsClaimTypes.SeniorAdmin, XtremeIdiotsClaimTypes.HeadAdmin, XtremeIdiotsClaimTypes.GameAdmin, PortalClaimTypes.BanFileMonitor };

            var(gameTypes, banFileMonitorIds) = claimsPrincipal.ClaimedGamesAndItems(requiredClaims);

            filterModel.GameTypes         = gameTypes;
            filterModel.BanFileMonitorIds = banFileMonitorIds;

            return(filterModel);
        }
コード例 #4
0
        public async Task <List <BanFileMonitorDto> > GetBanFileMonitors(BanFileMonitorFilterModel filterModel)
        {
            if (filterModel == null)
            {
                throw new ArgumentNullException(nameof(filterModel));
            }

            var banFileMonitors = await _legacyContext.BanFileMonitors
                                  .ApplyFilter(filterModel)
                                  .ToListAsync();

            var models = banFileMonitors.Select(bfm => bfm.ToDto()).ToList();

            return(models);
        }
コード例 #5
0
        public async Task <IActionResult> Details(Guid id)
        {
            var gameServerDto = await _gameServersRepository.GetGameServer(id);

            if (gameServerDto == null)
            {
                return(NotFound());
            }

            var canEditGameServer = await _authorizationService.AuthorizeAsync(User, gameServerDto, AuthPolicies.ViewGameServer);

            if (!canEditGameServer.Succeeded)
            {
                return(Unauthorized());
            }

            var banFileMonitorFilterModel = new BanFileMonitorFilterModel
            {
                Order    = BanFileMonitorFilterModel.OrderBy.BannerServerListPosition,
                ServerId = id
            }.ApplyAuth(User);
            var banFileMonitorDtos = await _banFileMonitorsRepository.GetBanFileMonitors(banFileMonitorFilterModel);

            var fileMonitorFilterModel = new FileMonitorFilterModel
            {
                Order    = FileMonitorFilterModel.OrderBy.BannerServerListPosition,
                ServerId = id
            }.ApplyAuth(User);
            var fileMonitorsDtos = await _fileMonitorsRepository.GetFileMonitors(fileMonitorFilterModel);

            var model = new GameServerDetailsViewModel
            {
                GameServerDto      = gameServerDto,
                BanFileMonitorDtos = banFileMonitorDtos,
                FileMonitorDtos    = fileMonitorsDtos
            };

            return(View(model));
        }
コード例 #6
0
        public static IQueryable <BanFileMonitors> ApplyFilter(this IQueryable <BanFileMonitors> banFileMonitors, BanFileMonitorFilterModel filterModel)
        {
            banFileMonitors = banFileMonitors.Include(bfm => bfm.GameServerServer).AsQueryable();

            if (filterModel.GameTypes != null)
            {
                banFileMonitors = banFileMonitors.Where(bfm => filterModel.GameTypes.Contains(bfm.GameServerServer.GameType)).AsQueryable();
            }

            if (filterModel.ServerId != Guid.Empty)
            {
                banFileMonitors = banFileMonitors.Where(bfm => bfm.GameServerServerId == filterModel.ServerId).AsQueryable();
            }

            banFileMonitors = banFileMonitors.Skip(filterModel.SkipEntries).AsQueryable();

            switch (filterModel.Order)
            {
            case BanFileMonitorFilterModel.OrderBy.BannerServerListPosition:
                banFileMonitors = banFileMonitors.OrderBy(bfm => bfm.GameServerServer.BannerServerListPosition).AsQueryable();
                break;

            case BanFileMonitorFilterModel.OrderBy.GameType:
                banFileMonitors = banFileMonitors.OrderBy(bfm => bfm.GameServerServer.GameType).AsQueryable();
                break;
            }

            if (filterModel.TakeEntries != 0)
            {
                banFileMonitors = banFileMonitors.Take(filterModel.TakeEntries).AsQueryable();
            }

            return(banFileMonitors);
        }