Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }