public async Task <IActionResult> List()
        {
            var semester = await _database.Semesters
                           .Expressionify()
                           .OrderByDescending(s => s.SignupOpensAt)
                           .Select(s => SemesterModel.Create(s, e => true))
                           .ToListAsync();

            return(View(semester));
        }
        public async Task <IActionResult> Index(Guid id, bool archived = false)
        {
            var semester = await _database.Semesters
                           .Expressionify()
                           .Select(s => SemesterModel.Create(s, Filter(archived)))
                           .FirstOrDefaultAsync(s => s.Id == id);

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

            return(View(semester));
        }
        public async Task <IActionResult> Index(bool archived = false)
        {
            var semester = await _database.Semesters
                           .Expressionify()
                           .Where(s => s.IsActive())
                           .OrderByDescending(s => s.SignupOpensAt)
                           .Select(s => SemesterModel.Create(s, Filter(archived)))
                           .FirstOrDefaultAsync();

            if (semester == null)
            {
                return(View("Nothing"));
            }

            return(View(semester));
        }