public async Task <int> GetBanFileMonitorsCount(BanFileMonitorFilterModel filterModel) { if (filterModel == null) { throw new ArgumentNullException(nameof(filterModel)); } return(await _legacyContext.BanFileMonitors.ApplyFilter(filterModel).CountAsync()); }
public async Task <IActionResult> Index() { var filterModel = new BanFileMonitorFilterModel { Order = BanFileMonitorFilterModel.OrderBy.BannerServerListPosition }.ApplyAuth(User); var banFileMonitorDtos = await _banFileMonitorsRepository.GetBanFileMonitors(filterModel); return(View(banFileMonitorDtos)); }
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); }
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); }
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)); }
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); }