public async Task <int> GetAdminActionsCount(AdminActionsFilterModel filterModel) { if (filterModel == null) { throw new ArgumentNullException(nameof(filterModel)); } return(await _legacyContext.AdminActions.ApplyFilter(filterModel).CountAsync()); }
public async Task <IActionResult> Unclaimed() { var filterModel = new AdminActionsFilterModel { Filter = AdminActionsFilterModel.FilterType.UnclaimedBans, Order = AdminActionsFilterModel.OrderBy.CreatedDesc }; var adminActions = await _adminActionsRepository.GetAdminActions(filterModel); return(View(adminActions)); }
public async Task <IActionResult> MyActions() { var filterModel = new AdminActionsFilterModel { AdminId = User.XtremeIdiotsId(), Order = AdminActionsFilterModel.OrderBy.CreatedDesc }; var adminActions = await _adminActionsRepository.GetAdminActions(filterModel); return(View(adminActions)); }
public async Task <IActionResult> LatestAdminActions() { var filterModel = new AdminActionsFilterModel { Order = AdminActionsFilterModel.OrderBy.CreatedDesc, TakeEntries = 15 }; var adminActionDtos = await _adminActionsRepository.GetAdminActions(filterModel); return(View(adminActionDtos)); }
public async Task <List <AdminActionDto> > GetAdminActions(AdminActionsFilterModel filterModel) { if (filterModel == null) { throw new ArgumentNullException(nameof(filterModel)); } var adminActions = await _legacyContext.AdminActions .ApplyFilter(filterModel) .ToListAsync(); var models = adminActions.Select(aa => aa.ToDto()).ToList(); return(models); }
public async Task <IActionResult> Details(Guid?id) { if (id == null) { return(NotFound()); } var player = await _playersRepository.GetPlayer((Guid)id); var adminActionsFilterModel = new AdminActionsFilterModel { PlayerId = (Guid)id, Order = AdminActionsFilterModel.OrderBy.CreatedDesc }; var adminActions = await _adminActionsRepository.GetAdminActions(adminActionsFilterModel); var playerDetailsViewModel = new PlayerDetailsViewModel { Player = player, AdminActions = adminActions }; if (!string.IsNullOrWhiteSpace(player.IpAddress)) { try { var geoLocation = await _geoLocationClient.LookupAddress(player.IpAddress); if (geoLocation.Success) { playerDetailsViewModel.GeoLocation = geoLocation.GeoLocationDto; } } catch { // ignored } } return(View(playerDetailsViewModel)); }
public async Task <IActionResult> GetLatestAdminActions() { var filterModel = new AdminActionsFilterModel { Order = AdminActionsFilterModel.OrderBy.CreatedDesc, TakeEntries = 15 }; var adminActionDtos = await _adminActionsRepository.GetAdminActions(filterModel); var results = new List <dynamic>(); foreach (var adminActionDto in adminActionDtos) { string actionText; if (adminActionDto.Expires <= DateTime.UtcNow && (adminActionDto.Type == AdminActionType.Ban || adminActionDto.Type == AdminActionType.TempBan)) { actionText = $"lifted a {adminActionDto.Type} on"; } else { actionText = $"added a {adminActionDto.Type} to"; } var adminName = !string.IsNullOrWhiteSpace(adminActionDto.AdminName) ? adminActionDto.AdminName : "Unknown"; results.Add(new { GameIconUrl = $"https://portal.xtremeidiots.com/images/game-icons/{adminActionDto.GameType.ToString()}.png", AdminName = adminName, adminActionDto.AdminId, ActionType = adminActionDto.Type.ToString(), ActionText = actionText, PlayerName = adminActionDto.Username, PlayerLink = $"https://portal.xtremeidiots.com/Players/Details/{adminActionDto.PlayerId}" }); } return(Json(results)); }
public static IQueryable <AdminActions> ApplyFilter(this IQueryable <AdminActions> adminActions, AdminActionsFilterModel filterModel) { adminActions = adminActions.Include(aa => aa.PlayerPlayer) .Include(aa => aa.Admin) .AsQueryable(); if (filterModel.GameType != GameType.Unknown) { adminActions = adminActions.Where(aa => aa.PlayerPlayer.GameType == filterModel.GameType).AsQueryable(); } if (filterModel.PlayerId != Guid.Empty) { adminActions = adminActions.Where(aa => aa.PlayerPlayerId == filterModel.PlayerId).AsQueryable(); } if (!string.IsNullOrWhiteSpace(filterModel.AdminId)) { adminActions = adminActions.Where(aa => aa.Admin.XtremeIdiotsId == filterModel.AdminId).AsQueryable(); } switch (filterModel.Filter) { case AdminActionsFilterModel.FilterType.ActiveBans: adminActions = adminActions.Where(aa => aa.Type == AdminActionType.Ban && aa.Expires == null || aa.Type == AdminActionType.TempBan && aa.Expires > DateTime.UtcNow) .AsQueryable(); break; case AdminActionsFilterModel.FilterType.UnclaimedBans: adminActions = adminActions.Where(aa => aa.Type == AdminActionType.Ban && aa.Expires == null && aa.Admin == null) .AsQueryable(); break; } switch (filterModel.Order) { case AdminActionsFilterModel.OrderBy.CreatedAsc: adminActions = adminActions.OrderBy(aa => aa.Created).AsQueryable(); break; case AdminActionsFilterModel.OrderBy.CreatedDesc: adminActions = adminActions.OrderByDescending(aa => aa.Created).AsQueryable(); break; } adminActions = adminActions.Skip(filterModel.SkipEntries).AsQueryable(); if (filterModel.TakeEntries != 0) { adminActions = adminActions.Take(filterModel.TakeEntries).AsQueryable(); } return(adminActions); }