public async Task <IActionResult> Index() { var vm = new AdminReviewPersistViewModel(); vm.Backups = _persist.GetBackups(); vm.Matchs = await _context.Matchs.Where(m => m.StartDate >= DateTime.Today).Take(1).ToListAsync(); return(View(vm)); }
public async Task <IActionResult> ReviewEquipement(int id, int?roundSquadID) { var user = await GetUser(); if (user == null) { return(Forbid()); } var match = await _context.Matchs .Include(m => m.Sides) .Include(m => m.MatchTechnicalInfos) .Include(m => m.Users).ThenInclude(u => u.User) .Include(m => m.Rounds).ThenInclude(r => r.Sides).ThenInclude(s => s.Squads).ThenInclude(s => s.Slots).ThenInclude(s => s.AssignedUser).ThenInclude(u => u.User) .Include(m => m.Rounds).ThenInclude(r => r.Sides).ThenInclude(s => s.Faction) .FirstOrDefaultAsync(m => m.MatchID == id); if (match == null) { return(NotFound()); } var matchUser = match.Users.FirstOrDefault(u => u.UserID == user.UserID); if (matchUser == null) { return(Forbid()); } var squads = match.Rounds.SelectMany(r => r.Sides).SelectMany(s => s.Squads); RoundSquad squad; if (roundSquadID == null) { squad = squads.First(s => s.Slots.Any(s => s.AssignedUser == matchUser && s.Role >= Role.SquadLeader)); if (squad == null) { return(Forbid()); } } else { if (!(await _auth.AuthorizeAsync(User, "Admin")).Succeeded) { return(Forbid()); } squad = match.Rounds.SelectMany(r => r.Sides).SelectMany(s => s.Squads).FirstOrDefault(s => s.RoundSquadID == roundSquadID); if (squad == null) { return(NotFound()); } } var backup = _persist.GetBackups().FirstOrDefault(); var vm = new ReviewEquipementViewModel(); vm.Match = match; vm.Squad = squad; vm.Backup = backup; await LoadTacMap(vm.Match); return(View(vm)); }